PHP解析XML SOAP响应

时间:2018-07-20 13:20:11

标签: php soap simplexml

我有这样的xml结构:

<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<ns2:G110Response xmlns:ns1="urn:types.nmvs.eu:v2.0" xmlns:ns2="urn:wsdltypes.nmvs.eu:v2.0">
<ns1:Header>
<ns1:Auth>
<ns1:ClientLoginId>NVW</ns1:ClientLoginId>
<ns1:UserId>UserId</ns1:UserId>
<ns1:SubUserId>?</ns1:SubUserId>
</ns1:Auth>
<ns1:Transaction>
<ns1:Language>eng</ns1:Language>
<ns1:ClientTrxId>Test-Transaction</ns1:ClientTrxId>
<ns1:NMVSTrxId>f3eee93365314447b0b51c129984ef42</ns1:NMVSTrxId>
<ns1:Timestamp>2018-07-20T10:59:54.720+02:00</ns1:Timestamp>
</ns1:Transaction>
</ns1:Header>
<ns1:Body>
<ns1:Product>
<ns1:ProductCode ns1:scheme="GTIN">09070696210633</ns1:ProductCode>
<ns1:Batch><ns1:Id>TESTBC1AF369A1</ns1:Id>
<ns1:ExpDate>230716</ns1:ExpDate>
<ns1:ExpDateNMVS>2023-07-16</ns1:ExpDateNMVS>
</ns1:Batch>
</ns1:Product>
<ns1:Pack ns1:sn="PK00664A81AF636AA48" ns1:state="ACTIVE"/>
<ns1:ReturnCode ns1:code="NMVS_SUCCESS" ns1:desc="Successfully processed."/>
</ns1:Body>
</ns2:G110Response></soap:Body>
</soap:Envelope>

我如何使用php simplexml来获取内部值。 我尝试了各种方法来访问元素内部的值,但是我没有设法解决这个问题。

$xml = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $xmlResponse); // simple xml throws error on ":"
$clean_xml = simplexml_load_string($xml);

结果是这样的:

[ns1Pack] => SimpleXMLElement Object
                                    (
                                    )

0 个答案:

没有答案