js 구현된 xml 대상 전환 json 기능 예시
무한 레벨 xml 구조 대상의 json 전환을 지원하고 임의의 탭 속성의 json 전환을 지원합니다 (i8 등 브라우저 호환)
xml 문자열을 xml 객체로 변환하려면 다음과 같이 하십시오.
function loadXml(str) {
if (str == null) {
return null;
}
var doc = str;
try{
doc = createXMLDOM();
doc.async = false;
doc.loadXML(str);
}catch(e){
doc = $.parseXML(str);
}
return doc;
}
/**
*xml json
*xmlObj:xml
*nodename: ('ROOT/ITEM')
*isarray:true,
**/
function xmltojson(xmlObj,nodename,isarray){
var obj=$(xmlObj);
var itemobj={};
var nodenames="";
var getAllAttrs=function(node){// xml json
var _itemobj={};
var notNull=false;
var nodechilds=node.childNodes;
var childlenght=nodechilds.length;
var _attrs=node.attributes;
var firstnodeName="#text";
try{
firstnodeName=nodechilds[0].nodeName;
}catch(e){}
if((childlenght>0&&firstnodeName!="#text")||_attrs.length>0){
var _childs=nodechilds;
var _childslength=nodechilds.length;
var _fileName_="";
if(undefined!=_attrs){
var _attrslength=_attrs.length;
for(var i=0; i<_attrslength i="" var="" attrname="_attrs[i].nodeName;" attrvalue="_attrs[i].nodeValue;" _itemobj="" for="" j="0;" _childslength="" _node="_childs[j];" _fildname="_node.nodeName;" if="" instanceof="" array="" a="_itemobj[_fildName];" _fildvalue="getAllAttrs(_node);" try="" return="" nodenames="nodename.split("/")" obj="obj.find(nodenames[i]);" itemobj="">0){
itemobj[item.nodeName]=getAllAttrs(item);
}else{
itemobj[item.firstChild.nodeName]=getAllAttrs(item.firstChild);
}
}
});
if(nodenames.length>1){
itemobj=itemobj[nodenames[nodenames.length-1]];
}
if(isarray&&!(itemobj instanceof Array)&&itemobj!=undefined){
itemobj=[itemobj];
}
return itemobj;
};
사용 방법:
var xmlstr="" +
"" +
" " +
"00001 " +
" " +
"" +
" " +
"00002 " +
" " +
"" +
" " +
"00002 " +
" " +
" ";
var xmlobj=loadXml(xmlstr);
매개변수 설정:
(1) xmltojson(xmlobj);//반환 결과는 다음과 같습니다.
{
"USERS": {
"USER": [
{
"state": "0",
"USERNAME": {
"type": "String"
},
"length": 1,
"USERID": {
"type": "String"
}
},
{
"state": "1",
"USERNAME": {
"type": "String",
"size": "100"
},
"length": 1,
"USERID": "00002"
},
{
"USERNAME": " ",
"length": 1,
"USERID": "00002"
}
],
"length": 1
}
}
(2)xmltojson(xmlobj,'USERS/USER',true);반환 결과는 다음과 같습니다.
[
{
"state": "0",
"USERNAME": {
"type": "String"
},
"length": 1,
"USERID": {
"type": "String"
}
},
{
"state": "1",
"USERNAME": {
"type": "String",
"size": "100"
},
"length": 1,
"USERID": "00002"
},
{
"USERNAME": " ",
"length": 1,
"USERID": "00002"
}
]
PS: XML 작업에 대한 온라인 도구를 참고로 제공합니다.
온라인 XML/JSON 상호 변환 도구:http://tools.jb51.net/code/xmljson
XML/XML 온라인 포맷:http://tools.jb51.net/code/xmlformat
XML 온라인 압축/포맷 도구:http://tools.jb51.net/code/xml_format_compress
XML 코드 온라인 서식 지정 도구:http://tools.jb51.net/code/xmlcodeformat
JavaScript에 관한 더 많은 내용은 본 사이트의 주제를 보실 수 있습니다.,,,,,,,,《JavaScript 역행 알고리즘과 기교 총결산》 및 《JavaScript 수학 연산법 총결산》
이 문서가 JavaScript 프로그램 설계에 도움이 되었으면 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.