SimpleXmlElement-> addAttribute()不允许空字符串

mis*_*t92 5 php xml simplexml

描述:

像addAttribute("attrname","")之类的调用会导致"PHP警告:SimpleXMLElement :: addAttribute():需要属性名称和值".除警告外,该属性也将被丢弃.

重现代码:

<?php
$xml = new SimpleXmlElement("<img></img>");
$xml->addAttribute("src", "foo");
$xml->addAttribute("alt", "");
echo $xml->asXML()."\n";
?>
Run Code Online (Sandbox Code Playgroud)

预期结果:

<?xml version="1.0"?>
<img src="foo" alt=""/>
Run Code Online (Sandbox Code Playgroud)

实际结果:

PHP Warning:  SimpleXMLElement::addAttribute(): Attribute name and value are required in [...]/test.php on line 4
<?xml version="1.0"?>
<img src="foo"/>
Run Code Online (Sandbox Code Playgroud)

这个问题存在于PHP 5.2.1中,但是在PHP5.3.5中它可以正常工作,但我无法更改我的php版本(出于某种原因).有什么方法可以解决这个问题吗?

Rob*_*rai 1

你可以尝试改变下面的行

$xml = new SimpleXmlElement("<img>");
Run Code Online (Sandbox Code Playgroud)

你也可以尝试下面的方法

    $xml = new DOMDocument('1.0', 'iso-8859-1');

    $doc = $xml->createElement('document');
    $doc = $xml->appendChild($doc);
Run Code Online (Sandbox Code Playgroud)