2011-06-01 93 views
1

我使用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

回答

0

問題已解決,仍然不錯。發現誰在我正在查看的網站上發佈nodeName語法的人發佈了無效的語法。它需要是'[nodeName =「z:row」]'是一個獨立的字符串,所有引號都是強制性的。 *搖頭*

1

我覺得你的問題就出在線路中斷後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

相關問題