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 に答える