【发布时间】:2015-04-25 08:05:51
【问题描述】:
我想从 URL 中检索 XML 并使用 JQuery 对其进行解析。我的工作假设是无法使用 AJAX 访问没有跨域访问的不同域。因此,我创建了一个 PHP 代码来返回它(我不明白这是我们在 2015 年必须处理的事情,但也许我只是愚蠢):
header('Content-Type:xml');
$xmlDoc = new DOMDocument();
$xmlDoc->load("http://www.ncbi.nlm.nih.gov/pubmed/22375842?report=xml");
$xmlstring = $xmlDoc->saveXML($xmlDoc->documentElement);
print $xmlstring;
现在我正在使用 AJAX 函数来调用该数据:
$.ajax({
url: "loadXML.php", //+ searchString,
dataType: "xml",
type: "GET",
success: parseXml
});
最后,这是我的 parseXML 函数,它已经用本地 XML 页面进行了测试,并且工作正常。此代码已重复多次:
function parseXml(xml){
$(xml).find("Article").each(function()
{
$("#output").append($(this).attr("PubModel") + "<br />");
$("#ArticleTitle").append(": " + $(this).find("ArticleTitle").text() + "<br />");
});
$(xml).find("Author").each(function()
{
$("#Author").append(": " + $(this).find("LastName").text());
$("#Author").append(", " + $(this).find("ForeName").text());
});
};
什么都没有发生。宙斯之爱的人请帮助我......并且放轻松,我显然不明白如何做一些非常简单的事情。我想过将 PHP 页面上的数据保存到我服务器上的本地文件中,但它无法处理“”。我有点迷路了。
【问题讨论】:
-
在
parseXml函数中添加console.log(xml);并发布结果。 -
设置内容类型头的正确方法是
header("Content-Type: text/xml") -
添加了 console.log(xml);在 parseXml 函数中,没有任何改变。还更正了内容类型标题。
标签: php jquery ajax xml cross-domain