调用addAttribute(“attrname”,“”)之类的调用 “PHP警告:SimpleXMLElement :: addAttribute():属性名称和值是必需的”。除警告外,该属性也将被丢弃。
<?php
$xml = new SimpleXmlElement("<img></img>");
$xml->addAttribute("src", "foo");
$xml->addAttribute("alt", "");
echo $xml->asXML()."\n";
?>
<?xml version="1.0"?>
<img src="foo" alt=""/>
PHP Warning: SimpleXMLElement::addAttribute(): Attribute name and value are required in [...]/test.php on line 4
<?xml version="1.0"?>
<img src="foo"/>
这个问题存在于PHP 5.2.1中,但是在PHP5.3.5中它可以正常工作,但我无法更改我的php版本(出于某种原因)。有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
您可以尝试更改以下行
$xml = new SimpleXmlElement("<img>");
也可以在下面尝试
$xml = new DOMDocument('1.0', 'iso-8859-1');
$doc = $xml->createElement('document');
$doc = $xml->appendChild($doc);
答案 1 :(得分:1)
SimpleXMLElement::addAttribute
的文档说value
参数是可选的,因此您可以尝试省略它。我没有尝试使用php 5.2.1,但是5.2.6和5.3都使用你发布的代码,如果你省略value
参数(这使我和文档混淆),两者都会发出警告。 / p>
答案 2 :(得分:0)
这对你有用吗?我手头没有5.2.1进行测试。它适用于5.3.6。
$xml = simplexml_load_string('<img src="images/bg.png" alt="" />');
echo $xml->asXML();