PHP Dom XML Разбор пустых самозакрывающихся тегов - PullRequest
0 голосов
/ 12 сентября 2009

Я использую 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 ]

2 голосов
/ 12 сентября 2009

Пустой тег не будет иметь дочерних узлов, поэтому второй элемент (0) в вашей последней строке не будет возвращать действительный объект, и поэтому попытка получить его значение через nodeValue приведет к ошибке вы получаете, потому что у него нет подходящего объекта для работы.

1 голос
/ 12 сентября 2009

Ошибка XML, которую вы получаете, связана не с самозакрывающимся тегом; это действительный XML. Скорее всего, это связано с тем, что тег с именем Title не найден или 10 из них не возвращены (что в любом случае является плохим способом написать его, лучше основать цикл на $ x-> length, который является известным значением).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...