2

我是 XMl 的新手。我想提取以下 xml 中的状态值。我不知道如何在 php 中执行此操作。这是我从 API 调用中得到的响应。

<soapenv:envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:body>
    <savesalesorderresponse xmlns="http://www.smartturn.com/services/OccamService/sales-order">
    <uploadresponse>
    <ns1:externalrefid xmlns:ns1="http://www.smartturn.com/services/occamtypes">007</ns1:externalrefid>
    <ns2:status xmlns:ns2="http://www.smartturn.com/services/occamtypes">SUCCESS</ns2:status>
    <ns6:systemid xmlns:ns6="http://www.smartturn.com/services/occamtypes">SO-059241</ns6:systemid>
    </uploadresponse>
    </savesalesorderresponse>
    </soapenv:body>
    </soapenv:envelope>

解决方案代码将不胜感激提前感谢

4

2 回答 2

2

您需要做的就是注册命名空间registerXPathNamespace

$xml = new  SimpleXMLElement($data);
$xml->registerXPathNamespace("ns", "http://www.smartturn.com/services/occamtypes");
$status = $xml->xpath('//ns:status');
$status = (string)  $status[0];
print($status);

输出

SUCCESS
于 2012-10-12T12:45:45.763 回答
-1

最简单的方法是使用SimpleXML

于 2012-10-12T12:07:18.947 回答