2012-01-13 48 views
0

如何使用JavaScript获取我的xml数据的值。我访问我的域名上的XML文件,并在客户端查看它。通过javascript访问XML数据

my.xml

<usr> 
    <uid trk="1234"> 
    <getThis>kdzbnya</getThis> 
    </uid> 
</usr> 

我想 “获得OS 3.0”

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); 
     } 
} 

的价值,但它返回undefined值。

+0

你知道在Firefox这不会工作的,对不对? – dbrin 2012-01-13 00:35:20

+0

@DmitryB是的,你的意思是activexObject,但我只在IE上工作,因为它是用于Windows 7的小工具。 – 2012-01-13 00:37:43

回答

1

我看到你正在使用jQuery。

变化

v += valThis.getElementsByTagName('getThis').nodeValue 

v += $(valThis).find('getThis').text() 
+0

是的,谢谢!有用。是的,我必须使用jQuery,因为我必须获取很多数据。 – 2012-01-13 00:52:05

2

尝试增加getElementsByTagName(...).nodeValue之间的.item(0)[0]

v += valThis.getElementsByTagName('getThis').item(0).nodeValue; 

你需要以此为getElementsByTagName返回NodeList(它可以像一个Array)。该列表本身不具有nodeValue property,但其中的节点应该是。

+0

它返回null,也许是因为我的jQuery代码存在一些问题。 – 2012-01-13 00:50:43