【问题标题】:Possible to make a php string into XML and send to JavaScript?可以将 php 字符串转换为 XML 并发送到 JavaScript?
【发布时间】:2015-06-23 08:05:59
【问题描述】:

我想在我的 php 服务器代码中形成一个字符串作为 xml,然后将其发送到 javascript,以便 ajax.responseXML 可以在其中导航并处理数据。我无法准确找到完成此任务所需的内容,并尝试了几种不同的方法。这是我最近尝试过的。

<?php
   header("Content-type: text/xml");
   $xmlstring = "<?xml version'1.0' encoding='UTF-8'>";
   $xmlstring = $xmlstring . "<book name='$name' author='$author'>";
   foreach($rankings as $entry)
   {
      $xmlstring = $xmlstring . "<rank>$entry</rank>";
   }
   echo $xmlstring;
?>

我知道数据正在到达那里,因为如果我将它作为字符串回显并直接打开它,我需要的数字就会被打印出来。我正在使用 Ajax.Request 打开带有某些参数的 php 文件,当它到达 onSuccess 函数时,ajax.responseXML 为空。这是我第一次处理 xml,所以我可能会做一些愚蠢的事情。

调用函数:

function findRankings(author, name)
{
    new Ajax.Request("server_code.php",
                {
                      method: "get",
                      paramters: {"type": "rank", "name": name, "author": author},
                      onSuccess: makeGraph,
                      onFailure: ajaxFailed
                });
}

function makeGraph(ajax)
{
      alert(ajax.responseXML); // testing that it made it
      .....// do stuff with the response
}

编辑:我添加了标题并使其仅回显字符串。我还添加了 ajax 函数。我一直在为空。 :(

【问题讨论】:

  • 可能要添加 header('Content-Type: text/xml'); 不确定这是否有助于 ajax.responseXML 识别它。
  • 也发现了这个:stackoverflow.com/questions/2124924/… 你能添加你的脚本来进行 Ajax 调用吗?
  • 我还添加了标题和脚本。我的 php 文件中的变量在我发布的部分之前设置。我知道这些都是对的,所以这不应该是问题。

标签: javascript php ajax xml


【解决方案1】:

您使用了simplexml_load_string,它将您的 XML 字符串转换为一个对象。

只需回显您的$xmlstring

对于干净的编码,您应该插入header('Content-Type: text/xml');,正如@Twisty 提到的那样。

【讨论】:

  • 我在回显 $xmlstring 时遇到了同样的问题。我会尝试添加你们提到的标题。
  • 如果这不起作用,请添加您的 JavaScript 代码和错误消息。
  • 对不起,我是想这么做的。我添加了我所做的所有更改。
【解决方案2】:

正如 Dustin 所说,您需要改为 echo $xmlstring; 并添加 header('Content-Type: text/xml');

但是您的 XML 声明中也存在一些错误。您缺少= 和?:

$xmlstring = "&lt;?xml version='1.0' encoding='UTF-8'?&gt;";

我建议以后使用XML validator。

【讨论】:

  • 我的实际代码中有“=”。我没有“?”尽管。我添加了它,我不再为空。谢谢你抓住那个。从现在开始我肯定会使用验证器。
猜你喜欢
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
  • 2015-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多