javascript读取xml

时间:2021-05-26

复制代码 代码如下:/**
*得到XML文件属性的集合对象
*@paramxmlDocXML对象
*@paramname属性名称如:user
*@return返回Array对象
*ExampleXML:
*<?xmlversion='1.0'encoding='utf-8'?>
*<ekuy>
*<user>
*<name>
*<cnname>小猪</cnname>
*</name>
*<age>27</age>
*</user>
*<user>
*<name>
*<cnname>小霞</cnname>
*</name>
*<age>26</age>
*</user>
*</ekuy>
*/
functiongetXMLArray(xmlDoc,name){
varkeys=name.split('.');
varnode=xmlDoc.documentElement;//得到根节点
varrtn=newArray();
varn=0;

for(vari=0;i<keys.length;i++){
varchilds=node.childNodes;//得到子节点
varkey=keys[i];
for(vark=0;k<childs.length;k++){
varchild=childs[k];
if(child.nodeName==key){//判断子节点是否符合
if(i==keys.length-1){
rtn[n]=child;
n++;
}else{
node=child;
break;
}
}
}
}


returnrtn;
}


/**
*得到由getXMLArray函数得到对象中的值
*@paramnode节点对象
*@paramname
*@return返回String
*/
functiongetValue(node,name){
varkeys=name.split('.');

for(vari=0;i<keys.length;i++){
varchilds=node.childNodes;//得到子节点
varkey=keys[i];
for(vark=0;k<childs.length;k++){
varchild=childs[k];
if(child.nodeName==key){//判断子节点是否符合
if(child.childNodes.length==1){
//如果没有字节点,返回值
returnchild.text;
}else{
//还有子节点,继续分析
node=child;
break;
}
}
}
}


return"";
}



//测试:


varxmlDoc=newActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML("<?xmlversion='1.0'encoding='utf-8'?><ekuy><user><name><cnname>小猪</cnname></name><age>27</age></user><user><name><cnname>小霞</cnname></name><age>26</age></user><user><name><cnname>小章</cnname></name><age>25</age></user></ekuy>");


varlist=getXMLArray(xmlDoc,'user');
for(vari=0;i<list.length;i++){
varobj=list[i];
document.write(getValue(obj,'name.cnname'));
document.write(getValue(obj,'age'));
document.write('<br\/>');
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章