我正在使用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;
我得到的错误是:
尝试获取非对象的属性
答案 0 :(得分:2)
空标记不会有任何子节点,因此最后一行中的第二项(0)不会返回有效对象,因此尝试通过nodeValue获取其值将导致错误你得到的是因为它没有合适的对象可供使用。
答案 1 :(得分:1)
您收到的XML错误不是由于标签是自动关闭的;这是有效的XML。这可能是由于没有找到名为Title的标签,或者没有返回10个标签(无论如何编写它都是一种不好的方式,最好将循环基于$ x-&gt;长度,这是一个已知值)