2010-06-16 8 views
22

나는 이미 this 질문을 알고 있지만 운이 없다.JavaScript에서 문자열을 XML 객체로 변환하는 방법은 무엇입니까?

I가 다음과 같은 방법을 통해 physicial XML 문서를로드하는 응용 프로그램 :

jQuery.ajax({ 
    type: "GET", 
    url: fileName, 
    dataType: "xml", 
    success: function (data) { 
     // etc... 
    } 
}); 

내가 XML을 구문 분석하고이를 쉽게 저장 될 수 있도록 변수에 저장되는 문자열로 변환을 데이터베이스. 어떻게하면이 변수의 데이터를 다시 XML 객체로 변환하여 파싱 할 수 있습니까?

+0

데이터를 어떻게 사용할 수 있습니까? – Reigel

답변

60

비의 jQuery 버전 :

var xmlDoc = jQuery.parseXML("<foo>Stuff</foo>"); 
if (xmlDoc) { 
    window.alert(xmlDoc.documentElement.nodeName); 
} 
+4

+1 jQuery가 아닌 non-jQuery뿐입니다. 실제로 jQuery 파서와 달리 XML을 올바르게 구문 분석합니다. – Anurag

+0

실제로 jQuery 솔루션을 찾고있었습니다. 지정하지 않았 음을 알고 있습니다. 나는 당신의 대답이 매우 유용하다고 생각했지만, 전에는이 방법을 고려하지 않았습니다. –

+0

+1 Anurags의 덧글 이외에 : jQuery 내 올바른 XML을 엉망 (만든 문서가 잘못되었습니다) 및 XML을 구문 분석을위한 유효한 솔루션이 아닙니다! 문서를 쿼리하는 데 사용할 수 있지만 제대로 만들지는 못합니다. – Knickedi

3

아직 XML 형식 인 경우 jQuery 함수로 포장하고 jQuery를 사용하여 구문 분석 할 수 있어야합니다.

$(xmlStringFromDB).find('foo'); 
+0

xmlStringFromDB가 여전히 문자열 인 경우 사용하면 매번 문자열이 XML로 설정됩니다. 단 한 번만 필요로하거나 모든 요청을 링크 할 수 있다면 확실히 괜찮지 만 그렇지 않으면 임시 변수에 저장해야합니다. –

5

:

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 xmlDoc = parseXml("<foo>Stuff</foo>"); 
if (xmlDoc) { 
    window.alert(xmlDoc.documentElement.nodeName); 
} 

jQuery를 1.5 있기 때문에, 당신은 위의 코드와 정확히 같은 방식으로 작동 jQuery.parseXML()를 사용할 수 있습니다 예를 들어, jquery를 사용하면 $.parseXML(str), https://api.jquery.com/jQuery.parseXML/

관련 문제