2012-01-04 7 views
1

XOMでドキュメントをクエリし、ノードを取得してから、このノードに対して別のノードをクエリしています。ただし、ノードのクエリは、このノードだけでなく、ドキュメント全体をクエリするように動作します。XOMのクエリノード

XMLは、このようなものです:

<root> 
    <someotherstuff> 
    <DifferentNode> 
     <Value1>different-value1</Value1> 
    </DifferentNode> 
    <Node> 
     <Node> 
     <Value1>value1</Value1> 
     <Value2>value2</Value2> 
     </Node> 
     <Node> 
     <Value1>value3</Value1> 
     <Value2>value4</Value2> 
     </Node> 
     <!-- more Node's --> 
    </Node> 
    </someotherstuff> 
</root> 

そして、私はこれをやっている:

Nodes nodes = document.query("//Node/Node", X_PATH_CONTEXT); 
Node node = nodes.get(0); 

Nodes innerNodes = node.query("/Value1"); 

そしてinnerNodesは0子供が含まれています。 "/Value1""//Value1"(スラッシュを追加)に変更すると、別の値-1が表示されるため、選択したノードではなく、ドキュメント全体を照会しているように見えます。

XOMで特定のノードをクエリするにはどうすればよいですか?

答えて

4

クエリが1つのスラッシュで始まる場合、指定された名前のドキュメントルートノードが検索されます。対照的に2つのスラッシュは、指定された名前のすべての祖先を探すことを意味します。先頭のスラッシュを省略すると、クエリが機能します。

Nodes innerNodes = node.query("Value1"); 
関連する問題