欢迎来到福编程网,本站提供各种互联网专业知识!

javascript读取xml

发布时间:2006-11-04 作者: 来源:转载
复制代码代码如下:/***得到XML文件属性的集合对象*@paramxmlDocXML对象*@paramname属性名称如:user*@return返回Array对象*ExampleXML:*****小猪**27****小霞**26***/functiongetXMLArray(xmlDoc,name){varkeys=name.split('.');varnode=xmlDoc.documentElem

复制代码 代码如下:/**
*得到XML文件属性的集合对象
*@paramxmlDocXML对象
*@paramname属性名称如:user
*@return返回Array对象
*ExampleXML:
*
*
*
*
*小猪
*

*27
*

*
*
*小霞
*

*26
*

*

*/
functiongetXMLArray(xmlDoc,name){
varkeys=name.split('.');
varnode=xmlDoc.documentElement;//得到根节点
varrtn=newArray();
varn=0;

for(vari=0;ivarchilds=node.childNodes;//得到子节点
varkey=keys[i];
for(vark=0;kvarchild=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;ivarchilds=node.childNodes;//得到子节点
varkey=keys[i];
for(vark=0;kvarchild=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("小猪27小霞26小章25");


varlist=getXMLArray(xmlDoc,'user');
for(vari=0;ivarobj=list[i];
document.write(getValue(obj,'name.cnname'));
document.write(getValue(obj,'age'));
document.write('

');
}

相关推荐