0

下面的代码使用带有 text/xml 的 http 标头的 POST 通过 CURL 发送 XML。服务器通过回显 $ch_result 进行响应。我正在通过 AJAX 调用此文件,因为返回的 XML 文件的内容需要显示在客户端。无论如何我可以将这个 XML 文件放入一个数组中,这样我就可以使用 json_encode 并让它像这样返回吗?我需要使用 JavaScript 轻松操作此内容,因为返回的 XML 文件很大......所以数组可能是最好的?

谢谢!

<?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,也可以在客户端解析 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,您可以设置dataTypexml,并且可以使用 jQuery 在客户端解析 xml:

如何使用 jQuery 解析 XML?

要使用 jquery 解析 xml,您必须回显: htmlentities($ch_result) 以便 XML 与标签等一起回显。

于 2013-06-24T21:36:21.823 回答