我从一个输入值获得此内容:
var xml_url = $("input").val(); alert(xml_url);
输出:
<trans> <result> <item1>1</item1> <item2>content</item2> <item3>NA</item3> <item4>0</item1> </result> </trans>
该结构是一个XML文件.我想得到这些数据.
我有这个代码:
<script language="javascript"> $(document).ready(function(){ var xml_url = $("input").val(); $(xml_url).find("result").each(function() { alert($(this).find("item3').").text()); }); }); </script>
它在firefox中工作正常,但在IE7 / 8中没有.
有什么建议么?
非常感谢.
解决方法
永远不要依赖jQuery来解析XML.
看到
> How do I parse xml with jQuery?
> jQuery won’t parse xml with nodes called option
使用适当的解析器来完成这项工作,然后使用jQuery查找所需的节点.您提供的示例适用于Firefox,但不适用于Chrome,Safari或IE.下面的函数将从字符串构造XML文档.
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; }
用于:
// Parse and construct a Document object var xml = parseXML(xml_url); // Use jQuery on the object now $(xml).find("result").each(function() { alert($(this).find("item3").text()); });