【问题标题】:PHP: Parse SOAP responsePHP:解析 SOAP 响应
【发布时间】:2012-09-10 16:17:54
【问题描述】:

我在 SOAP 方面没有太多经验,但我需要为我的工作构建一个验证器并使用特定的 SOAP wsdl。

我已经建立了连接和调用,一切正常,但我收到了我认为是 XML 的响应数据,这是输出的一小部分:

<user id=”54354334543”>
<firstname>My firstname</firstname>
<lastname>My lastname</lastname>
<email>my_email@text.com</email>
<nickname>My Nickname</nickname>
<source>Update_and_add</source>
</user>

此响应是验证中的一个步骤,因此我必须能够检索单个项目,例如 and 并将它们用于进一步查找。

所以我的问题是,我如何解析这个以便取出物品?我尝试了不同的方法并将其转换为数组,但我没有任何运气。

非常感谢任何建议或帮助。

问候,
- 梅斯蒂卡

【问题讨论】:

    标签: php parsing soap xsd xml-parsing


    【解决方案1】:
    $xml = '<user id="54354334543">
    <firstname>My firstname</firstname>
    <lastname>My lastname</lastname>
    <email>my_email@text.com</email>
    <nickname>My Nickname</nickname>
    <source>Update_and_add</source>
    </user>';
    print_r(json_decode(json_encode(simplexml_load_string($xml))));
    

    输出:

    stdClass Object
    (
        [@attributes] => stdClass Object
            (
                [id] => 54354334543
            )
    
        [firstname] => My firstname
        [lastname] => My lastname
        [email] => my_email@text.com
        [nickname] => My Nickname
        [source] => Update_and_add
    )
    

    所以你可以这样做:

    $data = json_decode(json_encode(simplexml_load_string($xml)));
    echo $data->nickname;
    

    【讨论】:

      【解决方案2】:

      还有这个功能:

      http://php.net/manual/en/book.simplexml.php#108035

      这可能会更高效、更清晰,尽管我会先尝试通过 JSON 解决方案进行过滤。

      【讨论】:

        【解决方案3】:

        试试这个

        <?php
        $k = '<user id="54354334543">
        <firstname>My firstname</firstname>
        <lastname>My lastname</lastname>
        <email>my_email@text.com</email>
        <nickname>My Nickname</nickname>
        <source>Update_and_add</source>
        </user>';
        $xml = simplexml_load_string($k);
        echo $id =  $xml['id']; 
        echo "<br>".$firstname =$xml->firstname;
        ?>
        

        输出

        54354334543
        My firstname
        

        【讨论】:

          猜你喜欢
          • 2016-09-03
          • 2014-03-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-22
          相关资源
          最近更新 更多