PHP Dom XML解析空自关闭标记

时间:2009-09-11 23:59:05

标签: php xml dom tags

我正在使用DOM来解析xml文件。 我无法捕获XML标记为空并自行关闭时抛出的错误。

例如。    <Title />

$xml=("http://www.example.com/xml-to-parse.xml");
$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);

$element = $xmlDoc->getElementsByTagName('Root');

for ($i=0; $i <= 10; $i++)
{
    $id = $element->item($i)->getElementsByTagName('Title')
                  ->item(0)->childNodes->item(0)->nodeValue;

我得到的错误是:

  

尝试获取非对象的属性

2 个答案:

答案 0 :(得分:2)

空标记不会有任何子节点,因此最后一行中的第二项(0)不会返回有效对象,因此尝试通过nodeValue获取其值将导致错误你得到的是因为它没有合适的对象可供使用。

答案 1 :(得分:1)

您收到的XML错误不是由于标签是自动关闭的;这是有效的XML。这可能是由于没有找到名为Title的标签,或者没有返回10个标签(无论如何编写它都是一种不好的方式,最好将循环基于$ x-&gt;长度,这是一个已知值)