PHP функция для разбора xml в массив, который не удаляет узлы с пространствами имен - PullRequest
0 голосов
/ 29 июля 2010

Я пытаюсь проанализировать RSS-канал, использующий правильно сформированный API-интерфейс веб-комментариев, и у меня возникают проблемы с удалением частей XML, содержащих пространства имен. Я проверил здесь:

PHP-файл синтаксического анализа XML с пространствами имен и без них

но, похоже, его решение было больше только для одного конкретного пространства имен. Вот мой XML:

 <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/">
<channel>
<title>Some TITLE</title>
<link>http://www.somelink.com</link>
<description>Make it happen.</description>
<dc:language />
<generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator>
<item>
<title>Blah blah blah</title>
<link>http://www.somelink.com</link>
<pubDate>Wed, 21 Jul 2010 16:30:00 GMT</pubDate>
<guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9612038</guid>
<dc:creator>Chris Pendleton</dc:creator>
<slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">

Я пытался использовать несколько объектов для массива функций, которые я обычно использую для синтаксического анализа XML, но они опускают все узлы, которые содержат пространства имен. Предложения? На самом деле все, что мне нужно, это добраться до объекта для каждого узла.

1012 * ТИА *

Ответы [ 2 ]

1 голос
/ 29 июля 2010

Вы пробовали XMLReader?http://php.net/manual/en/book.xmlreader.php

0 голосов
/ 29 июля 2010

Вы разбираете RSS, хорошо поставленная задача. Рассматривали ли вы использование чужого кода вместо написания собственного? Есть много вариантов, быстрый Google для php rss parser тянет много хороших (и некоторых плохих) вариантов ...

Если вы настаиваете на том, чтобы сделать это самостоятельно, DOM имеет поддержку пространства имен - все методы, заканчивающиеся на "NS", работают с XML-элементами и атрибутами пространства имен.

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