前提・実現したいこと
phpでsoap通信を行ったあとの
レスポンスxmlがsimplexml_load_stringで解析できません
色々調べたところ
simplexml_load_string()は、「soap:」が含まれるSOAP応答を読み取らない事を知りました
(wsdlファイルを使った
SoapClientでの取得は簡単明瞭で希望した値をすぐに取得するとこができたのですが
httpクライアントでhttp通信でプロジェクトとして統一することになり
他と同じ挙動にする予定でこのようになりました。)
該当のソースコード
soap通信からの dd($response→Body()) で以下のxmlが取得できている事を確認しました (一部生データTestやhogeで置き換えています) <?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <TestResponse xmlns="http://schemas.xmlsoap.org/soap/envelope/"> <ns1:Result xmlns:ns1="https://test.net/"> <ns1:CD>001</ns1:SinCD> <ns1:ErrorCode>001</ns1:ErrorCode> <ns1:ErrorMessage>hoge</ns1:ErrorMessage> <ns1:ErrData> <ns1:DataNo>1</ns1:DataNo> <ns1:ParameterNo>2</ns1:ParameterNo> <ns1:ParameterName>hoge</ns1:ParameterName> <ns1:ErrorMessage>hage</ns1:ErrorMessage> <ns1:ErrorCode>00</ns1:ErrorCode> </ns1:ErrData> </ns1:Result> </TestResponse> </soapenv:Body> </soapenv:Envelope> $xml=simplexml_load_string($response->Body()); としても SimpleXMLElement {#1152} みたいな空で帰ってきます
値を撮るにはどのように記述すればいいでしょうか?
ここを参考に記述してみましたが取れませんでした
$xml= 上記のxml $ns3 = $xml->children("ns1", true)->Result; や $ns3 = $xml->TestResponse;
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。