1、用 childNodes 属性,按顺序取
实现过程:首先创建一个 xml 对象,然后载入 xml 文件,再根据待取节点父节点在 xml 文件中的序号和本身的序号,确定待取节点的位置,最后返回待取节点的值。
//pId 待取节点父节点序号
//cId 待取节点序号
function getXmlNodeValue(pId, cId) {
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load("employeeInfo.xml");
var nodes = xmlDoc.documentElement.childNodes[pId].childNodes[cId]; return nodes.childNodes[0].text;
}
调用方法:alert(getXmlNodeValue(1, 2));
2、用 for 循环来取
实现过程:首先创建一个 ie 支持的 xml 对象,如果发生异常,是创建一个 FireFox 支持的空 xml 对象并返回空;然后载入 xml 文件,如要发生异常也返回空;最后,通过 for 循环遍历查找与传入的节点值相同的节点,找到后返回属于该节点的属性值。
//nodeValue 待取节点的所属节点值
function getXmlNodeValueFor(nodeValue){
var xmlDoc;
try {
//创建一个 ie 支持的 XML 文档对象
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
}catch(e){
try{
//创建FireFox空的XML文档对象
xmlDoc=document.implementation.createDocument("","",null);
}catch(e){
alert(e.message);
return "";
}
}
xmlDoc.async = false;
try {
xmlDoc.load("employeeInfo.xml");
}catch(e){
alert(e.message);
return "";
}
var xd=xmlDoc.documentElement.childNodes;
if(xd==null)
return "";
var tempValue;
for(var i=0;iif(xd[i].childNodes[0].childNodes[0].nodeValue==nodeValue) tempValue=xd[i].childNodes[2].childNodes[0].nodeValue;
}
return tempValue;
}
调用方法:alert(getXmlNodeValueFor("王佳琳"));
这个 ,在网上找到了你要的答案 ,经测试是可以使用的.
XML 文件(假设为“names.xml”,注意文件编码)
张三 李四 王五
JavaScript 代码(需要放在 HTML 页面中,并在浏览器中执行)
//
用Jquery:$("#需要取值的ID").val()