2011-02-07 7 views
1

NodeListから特定のノードを検索することで、解析されたXMLファイルから要素を引き出そうとしています。これは複数の親を繰り返し処理するために使用する次のコードです。NodeListとNodeMapsに関するNoobの質問

Node node; 
NodeList nodeList = document.getElementsByTagName("SomeTag"); 
for (int i = 0; i < nodeList.getLength(); i++) 
{ 
    NamedNodeMap map = nodeList.item(i).getAttributes(); 
    node = map.getNamedItem("AnotherTag") 
} 

ただし、私のノードは常にnullを返します。いくつかのデバッグを行うとき、すべての値を持って表示されます。 enter image description here

私はそれは私がののgetLengthを行う場合ので、私は、値を取得する前に自分自身に「この$ 0」を参照して何かをしなければならないと思いますNodeMap、それは0を返します。どのようにこれを修正するための考え?みなさんありがとう!

答えて

0

あなたはnodeList.item(i).getAttributes();

+0

私は、私がやっていることを似たようにする例を見つけました。彼らはもっとうまくいくと思われます。http://www.w3schools.com/Dom/tryit.asp?filename=try_dom_attributes それがなぜ機能するのか?ここにページがあります: http://www.w3schools.com/Dom/dom_nodes_nodelist.asp –

+0

私はあなたがアクセスしようとしています: ... ...。正しい?この場合、単にnodeList.item(i)を使用し、その名前をチェックしてください(要素がElementの場合)。 ... ...

+0

属性にアクセスしています。助けていただきありがとうございます。私はGoogleマップのクエリからの応答から名前、住所、GPSの場所を解析していました。これは誰でも興味がある場合です:[Parse](http://dl.dropbox.com/u/2190/parse.txt) –

0

を呼び出すことにより、属性要素のではなく、そのサブノードにアクセスしているあなたは多分JAXBを使用して考えたことはありますか?

Javaオブジェクトを作成し、JAXBにXMLファイルをロードさせて、そのようにツリーを歩かせることができます。 XSDからJavaオブジェクトを自動的に作成することもできます(存在する場合)。

+0

これは、たぶん単純なXMLでのDOMの些細な基本的な使い方の例です。単純な答えではなく、違うXMLライブラリに切り替えるようTSに伝えることが本当に必要ですか? ? – fwielstra

関連する問題