我在 XOM 中查询文档,获取一个节点,然后在该节点中查询另一个节点。但是,查询 Node 的行为就像是在查询整个文档,而不仅仅是这个节点。
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 个 child 。当我将 "/Value1"
更改为 "//Value1"
(添加斜线)时,我得到不同的值 1,所以它看起来像是在查询整个文档,而不是我选择的节点。
如何查询 XOM 中的特定节点?
最佳答案
当您的查询以单斜杠开头时,它会查找具有给定名称的文档根节点。相反,两个斜杠表示查找给定名称的所有祖先。如果您只是省略前导斜线,您的查询应该有效:
Nodes innerNodes = node.query("Value1");
关于java - XOM 中的查询节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8726804/