如何使用javascript获取xml数据的值。我在我的域上访问我的xml文件,并在客户端查看它。
my.xml
<usr>
<uid trk="1234">
<getThis>kdzbnya</getThis>
</uid>
</usr>
我想获得“getThis”的价值
sample.js
function alertThis(){
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
var xmlFile = "my.xml";
xmlDoc.async="false";
xmlDoc.load(xmlFile);
xmlObj=xmlDoc.documentElement;
try {
var v = "";
$.each(xmlObj.childNodes, function(i, valThis) {
if(valThis.getAttribute("trk") == "1234"){
v += valThis.getElementsByTagName('getThis').nodeValue;
}
});
alert(v);
}
catch(e){
alert(e);
}
}
但它返回未定义的值。
答案 0 :(得分:2)
尝试在.item(0)
和[0]
之间添加getElementsByTagName(...)
或.nodeValue
:
v += valThis.getElementsByTagName('getThis').item(0).nodeValue;
您需要这样,getElementsByTagName
会返回NodeList
(可能类似于Array
)。该列表本身不会有nodeValue
property,但其中的节点应该是。
答案 1 :(得分:1)
我看到你正在使用jQuery。
更改
v += valThis.getElementsByTagName('getThis').nodeValue
到
v += $(valThis).find('getThis').text()
答案 2 :(得分:0)
请参阅XML解析器的此示例http://www.w3schools.com/xml/xml_parser.asp。 但实际上,您可能希望使用框架来加载XML并对其进行解析。那里有很多,请查看microjs.com以了解您正在寻找的功能。