XML-файл Parse RDF для получения всех rdf: о значениях

Я использую простой xml и xpath php для анализа XML-файла rdf и изо всех сил пытаюсь получить список всех rdf: о значениях.

Любой совет?

Кажется, что проблема связана с использованием SimpleXml с атрибутами с именами до PHP5.3. В принципе, все с a : будет удалено при преобразовании в свойство объекта элемента SimpleXml. Следующее будет делать, но мне кажется, что он хакерский:

 $rdf = str_replace('rdf:about', 'rdf_about', $rdf); $rdf = new SimpleXMLElement($rdf); foreach($rdf->xpath('//@rdf_about') as $node) { echo $node, PHP_EOL; } 

Глянь сюда:

Вы можете использовать DOM вместо SimpleXml:

 $dom = new DomDocument; $dom->loadXml($rdf); $xph = new DOMXPath($dom); $xph->registerNamespace('rdf', "http://www.w3.org/1999/02/22-rdf-syntax-ns#"); foreach($xph->query('//@rdf:about') as $attribute) { echo $attribute->value, PHP_EOL; } 

Но я предлагаю использовать выделенную библиотеку для этого через SimpleXml или DOM:

И вот сообщение в блоге о синтаксических анализаторах: