2012-01-04 57 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

當您的查詢以單斜槓開始時,則會查找具有給定名稱的文檔根節點。相反,兩條斜槓意味着尋找所有名字的祖先。如果您只是簡單地忽略前導斜槓,則您的查詢應該可以正常工作:

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