2013-06-24 3 views
0

У меня есть несколько XML-файлов в формате, как этогоАнализировать XML супа в PHP

... 
<section> 
    <header>Headline</header> 
    <par>Some text <em>here</em> and more text.</par> 
</section> 
.... 

На первом я использовал PHP выдвижной парсер XMLReader, который только что прошел через файл, и я мог ответить на любой узел тип читателя будет работать. Все это работало довольно хорошо, но код был раздутым, и мне нужна была какая-то контекстная информация, которая требовала от меня перетаскивания дополнительного состояния. Например, тег <header> может быть дочерним по отношению к тегу раздела или подраздела.

Итак, я переключился на SimpleXML, потому что он будет представлять XML-документ как рекурсивную структуру данных и предоставить мне функциональность XPath. Больше нет состояния (поскольку я могу запросить контекст для, например, тегов заголовков), и код намного компактнее.

Однако ... Как получить доступ к дочерним узлам "Some text " и " and more text." метки <par>? Возможно ли это, или я не могу разобрать суп с SimpleXML? Должен ли я лучше использовать реализацию DOMDocument, и если да, то какой? Где разница с SimpleXML?

ответ

0

Проблема, которую я описал выше, очень похож на тот, в этом вопросе: Getting the text portion of a node using php Simple XML

Короткий ответ: SimpleXML не может обрабатывать текстовые узлы, использовать DOMDocument экземпляр вместо. Более подробная информация и решение в указанной теме.

Смежные вопросы