使用simplexml使用namsespace进行XML解析标记

时间:2016-08-14 19:25:23

标签: php xml simplexml

我正在解析fedburner url' http://feeds.feedburner.com/xyz'使用简单的xml解析器和以下代码。但是每当我尝试访问标签时它都会出现错误:

Feed的xml结构如下:

<?xml version='1.0' encoding='UTF-8'?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
<title>ABC</title><link>http://www.website.com</link>
<description>mnop</description>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/abc" />
<feedburner:info uri="abc" />
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />
<feedburner:emailServiceId>abc</feedburner:emailServiceId>
<feedburner:feedburnerHostname>https://feedburner.google.com</feedburner:feedburnerHostname>
</channel>
</rss>

我想访问以下标记:

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/xyz" />
<feedburner:info uri="xyz" />
<feedburner:emailServiceId>abc</feedburner:emailServiceId>

使用的代码:

$mypix = simplexml_load_file("http://feeds.feedburner.com/xyz");        
echo $mypix->channel['feedburner:info']['uri'];

Niether访问两个atom10标签中的任何一个。

echo $mypix->channel['atom10:link']['href'];

和nor&#39; feedburner:emailServiceId&#39; tag:

echo $mypix->channel['feedburner:emailServiceId'];

我如何真正访问它们?

由于children()函数仅在标记内部有一些子标记时才起作用。但这里的一切都在同一个标​​签上。

0 个答案:

没有答案