2010-08-18 60 views
0

我有一些XML像jQuery和XML問題

<entry> 
    <a>a</a> 
    ... 
    <subelement> 
     <b>b</b> 
     .... 
    </subelement> 
</entry> 

,如果我做$(項).find( 'whatIAmLookingFor')

它適用於一些元素,但不能用於其他元素時,這些元素嵌套在子元素中。

我可以讓它做

$(entry).find('subelement').children()[indexofwhatiamlookingfor].textContent; 
在Firebug

工作,但顯然這是一個黑客...

爲什麼會「發現」找到一個子元素的一些元素,但不是別人?我讓另一位開發人員看一下,以確保我的元素名稱正確(沒有胖手指問題)。

+0

這些元素的名稱是什麼?如果它們是HTML中有效的元素名稱,則某些瀏覽器有問題。 – 2010-08-18 15:55:40

+0

在子元素中找不到名字,姓氏,電子郵件地址,位置和組織是 – hvgotcodes 2010-08-18 16:00:46

回答

2

jQuery不解析XML。你可以使用下面的簡單函數來做到這一點,並使用jQuery在文檔上執行其通常的查詢內容:

var parseXml; 

if (window.DOMParser) { 
    parseXml = function(xmlStr) { 
     return (new window.DOMParser()).parseFromString(xmlStr, "text/xml"); 
    }; 
} else if (typeof window.ActiveXObject != "undefined" && 
     new window.ActiveXObject("Microsoft.XMLDOM")) { 

    parseXml = function(xmlStr) { 
     var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM"); 
     xmlDoc.async = "false"; 
     xmlDoc.loadXML(xmlStr); 
     return xmlDoc; 
    }; 
} else { 
    parseXml = function() { return null; } 
} 

var xml = parseXml("<foo>Stuff</foo>"); 
if (xml) { 
    var $xmlDoc = $(xml); 
    window.alert($xmlDoc.find("foo")[0].nodeName); 
}