2010-08-18 4 views
0

내가 가진JQuery와 및 XML 문제

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

같은 일부 XML 나는 $ (항목) .find을 할 경우 ('whatIAmLookingFor')

가 다른 요소에 대한 몇 가지 요소에 대해 작동하지만, 경우 이러한 요소는 하위 요소에 중첩됩니다.

왜 일부 하위 요소의 요소가 아니라 다른 사람을 찾아 '발견'것 ... 나는 방화범에

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

을 수행하여 작동시킬 수 있지만, 분명히이 해킹? 나는 또 다른 개발자에게 이것을 보았다. 나는 정확한 요소 이름을 가지고 있는지 확인했다.

+0

이 요소들의 이름은 무엇입니까? HTML로 유효한 요소 이름 인 경우 일부 브라우저에 문제가 있습니다. –

+0

하위 요소, 위치 및 조직에 firstname, lastname, emailaddress를 찾을 수 없습니다. – hvgotcodes

답변

2

jQuery는 XML을 구문 분석하지 않습니다. 다음과 같은 간단한 함수를 사용하여 문서에서 일반적인 쿼리 작업을 수행 할 수 있습니다.

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); 
}