PHP函数用于将xml解析为不剥离具有命名空间的节点的数组

时间:2010-07-29 18:10:11

标签: php xml namespaces

我正在尝试解析使用格式良好的web注释api的rss提要,并且在部分包含命名空间的XML中存在一些问题。我查了一下:

PHP parsing XML file with and without namespaces

但似乎他的解决方案只针对一个特定的命名空间。这是我的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的数组函数,但它们忽略了包含命名空间的所有节点。建议?我真正需要的是获取每个节点的对象。

TIA

2 个答案:

答案 0 :(得分:1)

您是否尝试过XMLReader? http://php.net/manual/en/book.xmlreader.php

答案 1 :(得分:0)

您正在解析RSS,这是一项成熟的任务。您是否考虑过using someone else's code而不是自己编写?有很多选项,快速谷歌php rss parser提出了许多好的(和一些不好的)选项......

如果你坚持自己做,the DOM有命名空间支持 - 所有以“NS”结尾的方法都使用命名空间的XML元素&amp;属性。