これは、使用している API から取得した XML 応答です。
resParam<?xml version="1.0"?>
<response>
<status>OK</status>
<order>
<id>137656566936059014</id>
<order_date>2013-08-15 12:21:09</order_date>
<price>50.00</price>
<payment>UNPAID</payment>
<payment_type>0</payment_type>
<order_type>delivery</order_type>
<status>2</status>
<details>sample</details>
<user>
<name>-</name>
<telephone></telephone>
<address_line_1>*ND*SC</address_line_1>
<address_line_2>-</address_line_2>
<postcode>*ND*FODSC</postcode>
<town></town>
<distance>*ND*POINTS</distance>
</user>
</order>
</response>
resParam
応答の先頭にあります。このような変数に格納することで、その文字列なしで試しました
$string = '<?xml version="1.0"?> [ response xml content from API ] ';
$xml = simplexml_load_string($string ); //returns correct empty object
print_r( $xml );
それは結果を返していますが、その前に文字列を持つ最初のメソッドではありませんresParam
。試しstr_replace
てみましたが、これを返しています
< xsi:type="xsd:string"><?xml version="1.0"?>
<response>
<status>OK</status>
<order>
<id>137656566936059014</id>
<order_date>2013-08-15 12:21:09</order_date>
<price>50.00</price>
<payment>UNPAID</payment>
<payment_type>0</payment_type>
<order_type>delivery</order_type>
<status>2</status>
<details>sample</details>
<user>
<name>-</name>
<telephone></telephone>
<address_line_1>*ND*SC</address_line_1>
<address_line_2>-</address_line_2>
<postcode>*ND*FODSC</postcode>
<town></town>
<distance>*ND*POINTS</distance>
</user>
</order>
</response>
< xsi:type="xsd:string">
この結果の余分なものは何ですか?
誰でもこれで私を助けることができますか?または、私は何を間違っていますか?どうすればこれを解析できますか
編集:
firebugで結果を調べたところ、これが得られました
<env:envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urn:myOutputNamespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:getorderresponse env:encodingstyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result></rpc:result><!--?xml version="1.0"?-->
<response>
<status>OK</status>
<order>
<id>137656566936059014</id>
<order_date>2013-08-15 12:21:09</order_date>
<price>50.00</price>
<payment>UNPAID</payment>
<payment_type>0</payment_type>
<order_type>delivery</order_type>
<status>2</status>
<details>sample</details>
<user>
<name>-</name>
<telephone></telephone>
<address_line_1>*ND*SC</address_line_1>
<address_line_2>-</address_line_2>
<postcode>*ND*FODSC</postcode>
<town></town>
<distance>*ND*POINTS</distance>
</user>
</order>
</response></ns1:getorderresponse></env:body></env:envelope>
応答タグ内のデータのみが必要です。どうやってやるの?この試みは問題を解決すると思います。