반응형
크로스 브라우저 자바 스크립트 XML 파싱
Javascript에서 XML 파일을 구문 분석하는 브라우저 간 / 플랫폼 간 방법이 있습니까?
다음은 IE 6을 포함한 모든 주요 브라우저에서 작동합니다.
var parseXml;
if (typeof window.DOMParser != "undefined") {
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 {
throw new Error("No XML parser found");
}
사용 예 :
var xml = parseXml("<foo>Stuff</foo>");
alert(xml.documentElement.nodeName);
라이브 데모 :
var parseXml;
if (typeof window.DOMParser != "undefined") {
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 {
throw new Error("No XML parser found");
}
var xml = parseXml("<foo>Stuff</foo>");
document.body.innerHTML = "Root element: " + xml.documentElement.nodeName;
jQuery.parseXML 사용을 고려하십시오 .
이전 JQuery의 코드 (2.x 이전)는 허용 된 답변에서 제안 된 것과 본질적으로 동일하며 http://code.jquery.com/jquery-1.9.1.js , 아래 부분 버전 에서 찾을 수 있습니다 .
// Cross-browser xml parsing
parseXML: function( data ) {
...
try {
if ( window.DOMParser ) { // Standard
tmp = new DOMParser();
xml = tmp.parseFromString( data , "text/xml" );
} else { // IE
xml = new ActiveXObject( "Microsoft.XMLDOM" );
xml.async = "false";
xml.loadXML( data );
}
} catch( e ) {
xml = undefined;
}
...
}
JQuery 2.x 시작 코드가 여전히 필요한 경우 ActiveX 분기를 건너 뛰도록 변경되었습니다. 이전 버전의 JQuery 또는 인라인 ActiveX 구문 분석을 사용하십시오. http://code.jquery.com/jquery-2.0.0.js의 부분 코드 :
// Cross-browser xml parsing
parseXML: function( data ) {
var xml, tmp;
.....
// Support: IE9
try {
tmp = new DOMParser();
xml = tmp.parseFromString( data , "text/xml" );
} catch ( e ) {
xml = undefined;
}
.....
},
If you need to parse large XML documents that you may not be able to completely hold in memory, consider using a SAX style parser like this one: https://github.com/isaacs/sax-js/
참고URL : https://stackoverflow.com/questions/7949752/cross-browser-javascript-xml-parsing
반응형
'Nice programing' 카테고리의 다른 글
Excel Interop-효율성 및 성능 (0) | 2020.11.28 |
---|---|
Java-널 변수에 메모리 공간이 필요합니까? (0) | 2020.11.28 |
Java에서 임의의 BigInteger 값을 생성하는 방법은 무엇입니까? (0) | 2020.11.28 |
PHP에서 정적 및 비 정적 메서드를 선언 할 수 있습니까? (0) | 2020.11.28 |
matplotlib 서브 플롯의 행 및 열 헤더 (0) | 2020.11.28 |