2011-10-21 14 views
0

だから私は、このxmlファイルがあります:私はgetElementsByName(「ノード」)を使用してノードのリストを取得する必要があり、すべてのノードにアクセスするためには、DOMの要素にアクセスするには?

<root> 
    <node> 
     <name>One</name> 
     <val>1</val> 
    </node> 
    <node> 
     <name>Two</name> 
     <val>2</val> 
    </node> 
    <node> 
     <name>Three</name> 
     <val>3</val> 
    </node> 
</root> 

だから私は理解して何からを。

このリストを取得したら、すべての子要素にアクセスするにはどうすればよいですか?私はこれを正しく行っているかどうかはわかりません。

基本的には、すべてのノード要素をループする必要があり、名前と値を取り出す必要があるのは、それらを別の関数を呼び出すために使用しているためです。

答えて

0

可能であれば、あなたはDOMトラバーサルAPIを使用することができますトラバーサルAPIが実装されている場合

Document doc = ...; 
NodeIterator i = ((DocumentTraversal) doc).createNodeIterator(doc, 
NodeFilter.SHOW_ELEMENT, null, false); 
Element e = null; 
while ((e = (Element) i.nextNode()) != null) { 
    System.out.println(e.getTagName()); 
} 

JavaScriptが似た何かを持っている必要があります:Javaでhttp://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html

を、それはこのようなものになるwoul。

0

xがノードオブジェクトの場合、x.childNodesプロパティを使用すると、ノードxのすべての子要素のリストが表示されます。 そして、y.nodeValueにアクセスできます。ここで、yは子ノードです。ノードの値を取得します。

+0

したがって、x.childNodesを使用してノードのリストを取得した場合、それらのノードのそれぞれに2つのフィールドがあります。フィールド1とフィールド2に直接どのようにアクセスしますか? getElementByNameを使用できますか? – antonpug

+0

x.childNodesはあなたにノードリスト、つまりNodeListを与えます。nl1 = x.getChildNodes(); n11.item(0)は名前を付け、nl1.item(1)はそのノードの値を返します。 – vikiiii

+0

これを行うには、DOM APIを参照する必要があります。 http://download.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/Node.html#getChildNodes() – vikiiii

関連する問題