dsmvovm27249 2011-03-29 21:48
浏览 34
已采纳

使用包含命名空间的PHP解析XML

I am trying to parse an XML file in PHP that looks like:

<post dsq:id="##Edited out##">
    <id />
    <message>##Edited out##</message>
    <createdAt>2010-07-09T16:08:44Z</createdAt>
    <author>
        <email>##Edited out##</email>
        <name>##Edited out##</name>
        <isAnonymous />
    </author>
    <ipAddress>##Edited out##</ipAddress>
    <thread dsq:id="##Edited out##" />
</post>

<post dsq:id="##Edited out##">
    <id />
    <message>##Edited out##</message>
    <createdAt>2010-07-09T16:10:07Z</createdAt>
    <author>
        <email>##Edited out##</email>
        <name>##Edited out##</name>
        <isAnonymous />
    </author>
    <ipAddress>##Edited out##</ipAddress>
    <thread dsq:id="##Edited out##" />
</post>

I am using simple xml to parse it like this:

$xml = simplexml_load_file('disqus.xml');

foreach ( $xml->post as $post )
{
    echo $post['dsq:id'];
}

However, I am unable to get the id attribute from the post object here:

<post dsq:id="##Edited out##">

Any information on how that could be retrieved would be greatly appreciated.

  • 写回答

1条回答 默认 最新

  • drkenap147751 2011-03-29 23:05
    关注
    $xml = simplexml_load_file('disqus.xml');
    
    foreach ( $xml->post as $post )
    {
        $dsq = $post->children('disqus.com/disqus-internals'); //should this not have http://disqus.com/disqus-internals?
        echo $dsq->id;
    }
    

    The one you are using, w3.org/2001/XMLSchema-instance, is for the xsi namespace.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 代写uni代码,app唤醒
  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下: