PHP命名空间simplexml问题

时间:2010-01-20 00:09:07

标签: php xml namespaces simplexml xml-namespaces

晚上的人。

首先要说的是,我已阅读How do I parse XML containing custom namespaces using SimpleXML?

我正在从一个源代码解析一个XML文档而不是它,它们使用自定义命名空间。

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:moshtix="http://www.moshtix.com.au">
  <channel>
   <item>
    <link>qweqwe</link>
    <moshtix:genre>asdasd</moshtix:genre>
...

例如。当我使用SimpleXML进行解析时,没有一个mostix:namespace元素显示或可访问。可能是一个非常简单的解决方案,但任何想法的家伙?

1 个答案:

答案 0 :(得分:7)

通常,人们使用children()

$rss = simplexml_load_string(
    '<?xml version="1.0" encoding="utf-8"?>
    <rss version="2.0" xmlns:moshtix="http://www.moshtix.com.au">
        <channel>
            <link>qweqwe</link>
            <moshtix:genre>asdasd</moshtix:genre>
        </channel>
    </rss>'
);

foreach ($rss->channel as $channel)
{
    echo 'link: ', $channel->link, "\n";
    echo 'genre: ', $channel->children('moshtix', true)->genre, "\n";
}