私は試してみましたが、解決策を考え出すことができませんでした。私はその後、私のMac上で、このような要素にアクセス...私は次のようであるSOAPエンベロープ応答を有するすべてのXMLNSでSOAPエンベロープ解析 - Magentoで動作していません
<soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:header>
<soapenv:body>
<mcu:prescreenusereligibilityresponse xmlns:mcu="http://www.ups.com/XMLSchema/XOLTWS/MCUserEligibility/v1.0">
<common:response xmlns:common="http://www.ups.com/XMLSchema/XOLTWS/Common/v1.0">
<common:responsestatus>
<common:code>1</common:code>
<common:description>Success</common:description>
</common:responsestatus>
</common:response>
<mcu:eligibilitystatuscode>3</mcu:eligibilitystatuscode>
</mcu:prescreenusereligibilityresponse>
</soapenv:body>
</soapenv:header>
</soapenv:envelope>
:私の問題はこれです
に同じ方法を使用し$ns=array();
$xml=new SimpleXMLElement($string);
foreach($xml->getNamespaces(true) as $key=>$url){
$xml->registerXPathNamespace($key, $url);
$ns[]=strval($url);
}
print_r(strval($xml->children($ns[0])->header->body->children($ns[1])->prescreenusereligibilityresponse->eligibilitystatuscode));
別のLinuxインスタンスprint_r
行にエラーが表示され、最後の子をnullにすることはできません。私は値が正しいことを確認しました。私も$xml->xpath('//mcu:eligibilitystatuscode')
を使ってみると成功しませんでした。
は、私は本当にあなたはそれがあなたのMac上ではなく、Linux上で動作すると言うことを考えると-_-
同じ結果。私はかなり確実に 'trim($ string)'は終わりの文字を取り除くでしょう。 (私も試しました) –
@DrewPetersonトリムは、各行ではなく、文字列全体の開始/終了時にのみ空白を取り除きます。 –