使用jQuery解析XML的最佳方式
问题描述:
<?xml version="1.0" encoding="UTF-8" ?>
<BMC_Impact_Manager version="1.0">
<IMPACT_EVENT>
<EVENT>
<date_reception>1279568162</date_reception>
</EVENT>
<EVENT>
<date_reception>1279568162</date_reception>
</EVENT>
<EVENT>
<date_reception>1279568102</date_reception>
</EVENT>
<EVENT>
<date_reception>1279567862</date_reception>
</EVENT>
<EVENT>
<date_reception>1279567836</date_reception>
</EVENT>
</IMPACT_EVENT>
我们将XML输出更改为这样...所以现在我不再需要帮助了......虽然谢谢!使用jQuery解析XML的最佳方式
答
使用正确的XML解析器。
// http://www.w3schools.com/dom/dom_parser.asp
function parseXML(text) {
var doc;
if(window.DOMParser) {
var parser = new DOMParser();
doc = parser.parseFromString(text, "text/xml");
}
else if(window.ActiveXObject) {
doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = "false";
doc.loadXML(text);
}
else {
throw new Error("Cannot parse XML");
}
return doc;
}
然后让所有日期的接收标签值
var xml = parseXML(xmlString);
$(xml).find('date_reception').each(function() {
console.log(this.text());
});
+0
虽然不仅仅是“date_reception”,但每个事件中还有8个标签。我只是把“date_reception”,所以XMl看起来更简单。 – 2010-07-19 20:01:19
+0
@Mark - 用你的XML更新你的问题以及你被卡住的地方。你的评论很难说明如何进一步推进。 – Anurag 2010-07-19 21:19:36
答
假设你已经得到了XML作为字符串,那么它应该是:
var xml = ".....";
val values = $("date_reception", $(xml))
显示最糟糕的XML。 – 2010-07-19 19:52:08
我不确定你在问什么。 – 2010-07-19 19:53:17
jQuery本身并不真正解析任何XML - 它将它交给浏览器。无论如何,你到目前为止尝试过什么? – Pointy 2010-07-19 19:57:35