java - XOM 中的查询节点

标签 java xpath xom

我在 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/

相关文章:

xml - XML 中的根节点、根元素和文档元素有什么区别?

python - 使用 scrapy 在正文中查找电子邮件地址

java - XOM 规范化耗时过长

java - 尝试读取 XML 文件后发生 UnknownHostException

java - XOM 获取文档到字符串

java - 错误解决版本为 'org.apache.maven.plugins:maven-eclipse-plugin' : Plugin requires Maven version 2. 2.1

java - Apache Felix + Java EE + OSGi Web 应用程序

java - java中的内部类和封闭实例?

java - 如何在 Rally Rest toolkit for Java 中查询测试文件夹?

XPath:选择*没有*具有特定名称的子元素