简体   繁体   English

空自结束标记上的PHP Dom XML解析

[英]PHP Dom XML Parsing on empty self closing tags

I'm using DOM to parse an xml file. 我正在使用DOM解析xml文件。 And I am having trouble catching an error that throws when the XML tag is empty and self closed. 而且,我很难捕捉到XML标记为空且自关闭时引发的错误。

eg. 例如。 <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;

The error I am getting is: 我得到的错误是:

Trying to get property of non-object 试图获取非对象的属性

空标记不会有任何子节点,因此最后一行中的第二个项目(0)不会返回有效对象,因此尝试通过nodeValue获取其值将抛出错误,因为没有合适的对象而无法工作。

The XML error you're receiving isn't due to the tag being self-closing; 您收到的XML错误不是由于标签是自动闭合的。 that's valid XML. 那是有效的XML。 It's likely due to not finding a tag named Title, or there not being 10 of them returned (which is a bad way to write it anyway, better to base the loop off of $x->length, which is a known value). 可能是由于找不到名为Title的标签,或者没有返回10个标签(无论如何,这是一种不好的写法,最好将循环基于$ x-> length,这是一个已知值)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM