2012-01-13 12 views
0

javascriptを使用してxmlデータの値を取得する方法を教えてください。私のドメイン上の私のXMLファイルにアクセスして、クライアント側でそれを表示する。JavaScriptデータを使用してXMLデータにアクセスする

my.xml

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

私は

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

"getThis" の値を取得したいが、それは未定義の値を返します。

+0

変更

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

あなたは右、Firefoxでこの文句を言わないの仕事を知っていますか? – dbrin

+0

@DmitryBはい、あなたはactivexObjectを意味しますが、私はWindows 7ガジェットのためにIEでこれを動作させています。 –

答えて

1

jQueryを使用しています。

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

ありがとう!できます。はい、私は取得するために多くのデータを持っているので、私はjqueryを使用する必要があります。 –

0

この例を参照してください。http://www.w3schools.com/xml/xml_parser.aspのXMLパーサー。 しかし実際には、XMLを読み込んで解析するためにフレームワークを使用したいと思うかもしれません。そこにはたくさんの人がいて、あなたが探している機能をmicrojs.comでチェックしてください。

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

あなたはgetElementsByTagNameリターン(Arrayに似ていることができます)NodeListとしてこれを必要がありますgetElementsByTagName(...).nodeValue.item(0)または[0]を追加

2

してみてください。リストにはnodeValue property自体は含まれていませんが、その中のノードはそれ自身でなければなりません。

+0

jqueryコードに問題があるため、nullを返します。 –

関連する問題