代码之家  ›  专栏  ›  技术社区  ›  James

PHP命名空间SimpleXML问题

  •  6
  • James  · 技术社区  · 15 年前

    晚上好。

    首先,我读过 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 回复  |  直到 11 年前
        1
  •  7
  •   Josh Davis    15 年前

    通常,人们使用 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";
    }