使用 Simplexml 从 XML 检索数据


Retrieve DATA from XML with Simplexml

我正在尝试从使用 Symfony2 和 php 5.6 的 XML SOAP 响应中提取值,我已经阅读了文档并尝试了许多方法,但仍然无法获取数据

这是我的 XML 字符串

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
 <S:Body>
  <ns2:provisioningWithDataResponse xmlns="URL" xmlns:ns2="http://URL">
    <ns2:provisioningReturn>
        <date>2016-02-26T09:17:49.648+01:00</date>
        <messageId>642176832</messageId>
        <returnCode>1</returnCode>
        <returnMessage>Code: 6 Message: SQL query failed </returnMessage>
     </ns2:provisioningReturn>
  </ns2:provisioningWithDataResponse>
</S:Body>
</S:Envelope>

我已经尝试过这样做来获取数据并将其存储在会话中,但似乎$xml总是空的,因为我总是收到此错误消息

注意:尝试获取非对象的属性

法典:

$xml=simplexml_load_string($order_return);
$session->set("Respense",(string)$xml->children('ns2',true)->provisioningReturn[0]->returnMessage);

例如,知道如何检索returnMessage值吗?

请尝试以下代码:

(string)
// $xml is the node: S:Envelope
$xml->children('S', true) // => node: S:Body
    ->children('ns2', true) // => node: ns2:provisioningWithDataResponse
    ->children('ns2', true) // => ns2:provisioningReturn
    ->children() 
    ->returnMessage