0

以下のコードは、text/xml の http ヘッダーを持つ POST を使用して CURL 経由で XML を送信します。サーバーは $ch_result をエコーし​​て応答します。返された XML ファイルの内容をクライアント側で表示する必要があるため、AJAX 経由でこのファイルを呼び出しています。とにかく、この XML ファイルを配列に入れることができるので、json_encode を使用してそのように返すことができますか? 返される XML ファイルが大きいため、このコンテンツを JavaScript を使用して簡単に操作できるようにする必要があります...配列が最適でしょうか?

ありがとう!

<?php
  $xml_builder = '
                  MY XML POSTED TO SERVER GOES HERE';
  $ch = curl_init('http://username:password@myserver.blabla/api');
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_builder);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
  curl_setopt($ch, CURLOPT_REFERER, 'http://www.mydomain.co.uk');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $ch_result = curl_exec($ch);
  curl_close($ch);

  echo $ch_result;
?>
4

1 に答える 1

3

サーバー側だけでなく、クライアント側でも XML を解析できます。

サーバー側:

シンプルで汚い方法:

<?php
  $a = json_decode(json_encode((array) simplexml_load_string($s)),1);
?>

ただし、次の記事をお読みください。

http://gaarf.info/2009/08/13/xml-string-to-php-array/

クライアント側:

jQuery を使用している場合は、に設定でき、jQuery を使用dataTypexmlてクライアント側で xml を解析できます。

jQueryを使用してXMLを解析するには?

jquery を使用して xml を解析するには、echo: htmlentities($ch_result) を実行して、XML がタグなどでエコーされるようにする必要があります。

于 2013-06-24T21:36:21.823 に答える