我一直在开发一个Web应用程序,我需要在jquery中解析我的xml。我正在构建我的Web应用程序以使用IE7到IE10和mozilla。我想迭代到我的xml所以我写下面的代码。
<script type='text/javascript' src="jquery/jquery-1.7.1.min.js"></script>
<script type="text/javascript" language="javascript">
var xml = '<root><cell id="1"> </cell><cell id="2"> </cell></root>';
//works in ie7
$(xml).filter("cell").each(function () {
alert('ie'+$(this).attr('id'));
});
//works in mozilla
$(xml).find('cell').each(function () {
alert('mozilla'+$(this).attr('id'));
});
</script>
但我发现我需要编写不同的循环机制来从xml中获取不同的浏览器。这有点奇怪,因为我使用Jquery所以它应该是所有浏览器兼容的。
那么有没有更好的方法从xml读取,这将适用于所有浏览器,以便我不必编写浏览器检查代码?
答案 0 :(得分:1)
不要使用jQuery的主$()
函数来解析XML。它试图使用HTML元素的内置innerHTML
属性将XML解析为HTML,该属性不能正常工作,但足以让人们陷入虚假的安全感。请改用parseXML()
:
var xmlDoc = $.parseXML(xml);
$(xmlDoc).find("cell").each(function () {
alert( $(this).attr('id') );
});