크로스 브라우저 자바스크립트 XML 구문 분석
자바스크립트에서 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.parseX 사용을 고려합니다.ML.
이전 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;
}
...
}
ActiveX 분기를 건너뛰도록 JQuery 2.x 코드 시작이 변경되었습니다. 필요한 경우 이전 버전의 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;
}
.....
},
메모리에 완전히 담을 수 없는 큰 XML 문서를 구문 분석해야 하는 경우 다음과 같은 SAX 스타일 구문 분석기를 사용하는 것을 고려해 보십시오. https://github.com/isaacs/sax-js/
언급URL : https://stackoverflow.com/questions/7949752/cross-browser-javascript-xml-parsing
'programing' 카테고리의 다른 글
XML 문서에 HTML 내용을 삽입할 수 있습니까? (0) | 2023.10.07 |
---|---|
팬더 데이터 프레임에 열 레벨을 간단히 추가하는 방법 (0) | 2023.10.07 |
센토스 리눅스에서 mariadb를 안전하게 제거할 수 있습니까? (0) | 2023.10.07 |
Android on Click in XML vs.OnClickListener (0) | 2023.10.07 |
maria db 10에서 체크인할 때 삽입 데이터에 대한 sql 구문 오류? (0) | 2023.10.02 |