通过javascript访问XML数据

时间:2012-01-13 00:30:58

标签: javascript xml nodes getelementsbytagname

如何使用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);
        }
}

但它返回未定义的值。

3 个答案:

答案 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以了解您正在寻找的功能。