0

ウェブサイトから.netベースのAPIへのSOAPリクエストが機能しています。何らかの理由で、PHPは応答の解析に問題があるようです。

応答をダンプすると、取得されたデータのほとんどは「any」という名前の文字列に含まれています。この文字列は、返されたXMLのコピーのようです。この質問に貼り付けるには大きすぎますが、応答の内容は次の場所で確認できます:http: //pastie.org/4165973

この文字列をsimplexmlにロードしようとしましたが、「ドキュメントの最後に余分なコンテンツがあります」というエラーが表示されます。

誰かが同様の問題を経験しましたか?この応答を解析するにはどうすればよいですか?

編集__getLastResponse()をファイルに保存して、可能な限り生の出力を取得しました。新しいXMLはここにありますhttp://pastebin.com/3ZtjDbjw

4

2 に答える 2

1

XMLは不正な形式に見えます。 <ShipToAddress>おそらく正しくありませんが、パーサーを壊している可能性のあるCDATAが含まれています。

いずれにせよ、XMLリンター(http://xmlsoft.org/xmllint.html)を介して実行し、それが何を言っているかを確認してください。ただし、私の推測では、ソースAPIが誤って吐き出しているか、印刷する前に何かを行っているため、提供したものは実際にはライブ出力ではありません。

于 2012-06-28T15:01:07.727 に答える
0

xmlは不正な形式ではありませんでした。代わりに、問題は名前空間に関連していました。PHP Parse SoapReponseIssue-SimpleXMLElementとSimpleXMLを使用した名前空間でのXMLの解析の助けを借りてそれを解決することになりました

于 2012-06-29T15:10:47.137 に答える