使用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的最佳方式

+0

显示最糟糕的XML。 – 2010-07-19 19:52:08

+0

我不确定你在问什么。 – 2010-07-19 19:53:17

+0

jQuery本身并不真正解析任何XML - 它将它交给浏览器。无论如何,你到目前为止尝试过什么? – Pointy 2010-07-19 19:57:35

使用正确的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

这里只是Javascript来分析,很简单的例子为例:http://www.captain.at/howto-ajax-xml-javascript.php

假设你已经得到了XML作为字符串,那么它应该是:

var xml = "....."; 
val values = $("date_reception", $(xml))