doyrte8419 2013-11-10 10:31
浏览 147
已采纳

如何使用PHP的simplexml_load_string获取XML标记(包含名称空间)的值?

How do I get the value of "TagOne" (i.e. foo) and TagTwo (i.e. bar) from the XML below using simplexml_load_string? I'm stumped by the namespace called "ns" in the tag.

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Body>

    <ns:ExampleInterface_Output xmlns:ns="http://example.com/interfaces">
        <ns:TagOne>Foo</ns:TagOne>
        <ns:TagTwo>Bar</ns:TagTwo>
    </ns:ExampleInterface_Output>

</SOAP-ENV:Body>

Thanks very much for your kind help!

  • 写回答

2条回答 默认 最新

  • dourunlao1642 2013-11-10 11:26
    关注

    Check this code:

    <?php
    
    $xml = <<<XML
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <SOAP-ENV:Body>
            <ns:ExampleInterface_Output xmlns:ns="http://example.com/interfaces">
                <ns:TagOne>Foo</ns:TagOne>
                <ns:TagTwo>Bar</ns:TagTwo>
            </ns:ExampleInterface_Output>
        </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    XML;
    
    $xse = new SimpleXMLElement($xml);
    $exampleInterface = $xse
        ->children('SOAP-ENV', true)
        ->children('ns', true);
    
    foreach ($exampleInterface->children('ns', true) as $key => $value) {
        //Do your stuff
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 AT89C52单片机C语言关于串口通信的位操作
  • ¥20 需要步骤截图(标签-服务器|关键词-map)
  • ¥50 gki vendor hook
  • ¥15 灰狼算法和蚁群算法如何结合
  • ¥15 这是一个利用ESP32自带按键和LED控制的录像代码,编译过程出现问题,请解决并且指出错误,指导如何处理 ,协助完成代码并上传代码
  • ¥20 stm32f103,hal库 hal_usart_receive函数接收不到数据。
  • ¥20 求结果和代码,sas利用OPTEX程序和D-efficiency生成正交集
  • ¥50 adb连接不到手机是怎么回事?
  • ¥20 抓取数据时发生错误: get_mooncake_data() missing 1 required positional argument: 'driver'的问题,怎么改出正确的爬虫代码?
  • ¥15 vs2022无法联网