在Chrome浏览器与IE和Firefox的XML解析

问题描述:

我使用JQuery来解析从服务器返回的一些XML,并使用它来填充表;不幸的是,这只适用于Firefox和IE,但不适用于Chrome。以下相关代码:在Chrome浏览器与IE和Firefox的XML解析

var xmlDoc = $.parseXML(xml); 
$(xmlDoc).find('z\\:row').each (
    function() 
    {//this stuff never gets executed in Chrome} 

我使用$(xmlDoc中).find试过( “[节点名称= Z:行]”)为好,但给了我一个无效的语法错误。我已经验证过,传递给$ .parseXML的xml确实是一个有效且完整的XML文档。

(我在找理由“Z:行”是,这是从SharePoint Web服务输出。)

任何帮助将不胜感激! :)

编辑:问题已解决。发现谁在我正在查看的网站上发布nodeName语法的人发布了无效的语法。它需要是'[nodeName =“z:row”]'是一个独立的字符串,所有引号都是强制性的。 *摇头*

+0

我正在使用XML现在,我的东西是非常像你的一样,我必须从服务器返回值,并填充输入,但相反使用jQuery,我使用PHP。检查了这一点(http://www.geekpedia.com/tutorial156_How-to-read-XML-using-PHP-DOM.html) – 2011-06-01 14:36:46

+0

很高兴你解决了这个问题。如果您将解决方案作为答案进行发布并将其标记为已接受,则可以帮助其他人在未来搜索时找到答案。 :) – Spudley 2011-06-01 14:38:13

+0

哈哈,我感到你的痛苦。我希望浏览器开发人员能够遵循相同的编码标准,这样我们就可以避免这种混乱......我发现Chrome并不支持z \\:row。如在,它只是简单地不承认它。 * miffed * 斯普德利,会做,但我的代表不够高,自我反应8小时。 :( – sichinumi 2011-06-01 14:40:16

问题已解决,仍然不错。发现谁在我正在查看的网站上发布nodeName语法的人发布了无效的语法。它需要是'[nodeName =“z:row”]'是一个独立的字符串,所有引号都是强制性的。 *摇头*

我觉得你的问题就出在线路中断后function()

JavaScript有一个行后隐含分号插入。在某些浏览器上,他们可以知道function()不应该换行,但在ECMAScript标准中不存在。

function(){(移动{上)

编辑:哦,如果解决了,则忽略该项以上。然而,按照开发指南如http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml

+0

哇,我有*没有*关于这个的想法...肯定会记住这个未来:) – sichinumi 2011-06-01 14:38:42

+0

是的。仔细阅读Google风格的文档。它告诉你很多(如果你想使用闭包编译器也会有所帮助)。另外,诸如“if(something)”之类的语句应该在同一行上跟随一个“{”。所以'如果(某事){'。无论如何,我用所有的语言去做,因为我觉得它更清洁:P – Pwnna 2011-06-01 14:45:22