> 웹 프론트엔드 > JS 튜토리얼 > JavaScript XML 작업 캡슐화 class_javascript 기술

JavaScript XML 작업 캡슐화 class_javascript 기술

WBOY
풀어 주다: 2016-05-16 18:51:05
원래의
1007명이 탐색했습니다.
코드 복사 코드는 다음과 같습니다.

function XMLObject()
{
이것 .isIE= true;
if (window.ActiveXObject){isIE=true;}else{isIE=false;}
var node_xml;
var xmlDoc;
if (isIE) xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
}
else{
if (document.implementation && document.implementation.createDocument){
xmlDoc = document.implementation.createDocument("" ,"" ,null);
}
}
xmlDoc.async = false;
xmlDoc.resolveExternals = false;
xmlDoc.preserveWhiteSpace = true; ;
//문자열에서 XML 객체(XML 문자열) 생성
this.LoadXMLForString=function(XMLStr)
{
if(isIE)
{
xmlDoc.loadXML(XMLStr) ;
}
else
{
var oParser = new DOMParser();
xmlDoc = oParser.parseFromString(XMLStr,"text/xml")
}
}
//외부 파일에서 XML 파일 생성(파일 경로)
this.getXMLForURL=function(url)
{
//xmlDoc.load(url)
if (isIE){
xmlDoc.load(url);
}
else
{
xmlDoc = getXML(url).responseXML;
}
}
//노드 바이트 가져오기 Point
this.getXMLArray=function (name) {
varkeys = name.split('.');
var node = xmlDoc.documentElement; // 루트 노드 가져오기
var rtn = new Array();
var n = 0;
for(var i=0; ivar children = node.childNodes; var key = 키[i];
for(var k=0; kvar child = childrens[k]
if(child.nodeName == key) { // 하위 노드가
if(i ==keys.length-1) {
rtn[n] = child
}를 준수하는지 확인합니다. else {
노드; = child;
}
}
}
}
node_xml=rtn
return rtn; 🎜>this .getNodeValue=function(name)
{
return this.getValue(xmlDoc,name);
}
//노드에 따라 해당 노드 아래의 하위 노드 내용을 가져옵니다.
this.getValue=function(node ​​, name)
{
varkeys = name.split('.')
for(var i=0; i{
var children = node.childNodes; // 하위 노드 가져오기
var key =keys[i]
for(var k=0; k{
var child = childrens[ k];
if(child.nodeName == key)
{ // 하위 노드가
if(child.childNodes.length ==를 준수하는지 확인) 1)
{
// 바이트 포인트가 없으면 값을 반환
if(!window.ActiveXObject)
{
return children[k].textContent
}
else
{
return children[ k].text
}
}
else
{
// 하위 노드도 있으므로 계속 분석하세요
node = child;
}
}
}
}
return "";
function GetXMLHTTP()
{
var xmlhttp;
if (window.ActiveXObject){
try{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");}
catch (e){xmlhttp=new ActiveXObject("Microsoft.XMLHTTP") ;}
}else if (window.XMLHttpRequest)
{xmlhttp=new XMLHttpRequest();}
return xmlhttp;
}
function getXML(url){
var xmlHttp= GetXMLHTTP();
if (xmlHttp!=null){
xmlHttp.open("GET",url,false)
xmlHttp.send(null); Alert("귀하의 브라우저는 XMLHTTP.11을 지원하지 않습니다"); return false
}
return xmlHttp;
}
}


호출 메소드




코드 복사


코드는 다음과 같습니다.


var strXML=" 꼬마 돼지27 Xiaoxia26 Xiaozhang 25";

var XMLObj=new XMLObject();
XMLObj.LoadXMLForString(strXML) for(var i=0; ivar obj = list[i]
document.write(XMLObj.getValue(obj, 'name.cnname') ))
document.write(XMLObj.getValue(obj, 'age'))); document.write('
')


하하, 별로 잘 쓰지 않는 기능인데 다들 웃으시네요.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿