Java 如何使用xpath提取完整的XML block

标签 java xml xpath

我有这样的 XML 文件:

<A>
  <B>
    <C>
      <id>0</id>
    </C>
  </B>
  <B>
    <C>
      <id>1</id>
    </C>
  </B>
</A>

当 C 具有特定 id 时,我想获得 B block 。例如,如果我想获取 id=1 的 block ,我想要这样的响应:

      <B>
        <C>
          <id>1</id>
        </C>
      </B>

但我不知道如何才能得到我想要的部分。我尝试过:

Node result = (Node)xPath.evaluate("A/B/C[id = '1']", doc, XPathConstants.NODE);

但当我想要 B block 时,会返回一个 C block 。

并且:

Node result = (Node)xPath.evaluate("B[A/B/C[id = '1']]", doc, XPathConstants.NODE);

返回空。

我也阅读了官方文档,但没有找到任何内容:

https://msdn.microsoft.com/en-us/library/ms256471(v=vs.110).aspx

https://msdn.microsoft.com/en-us/library/ms256086(v=vs.110).aspx

谢谢。

最佳答案

谓词只是意味着“仅在符合我在此谓词中放入的条件时才保留此元素”

很简单,

A/B[C/id = 1]

关于Java 如何使用xpath提取完整的XML block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45373906/

相关文章:

xslt - 复制 XML 并重命名其一些节点和嵌套节点

java - 手动创建所有 Document 节点的 NodeList

objective-c - 查找某个div的xpath

Android 从 XML 中的级别列表中选择可绘制对象

javascript - AJAX 不会 POST 到 URL

java - ZooKeeper在集群中的作用?

java - Apache项目与大数据世界

php - 使用PHP和Xpath解析XML时无法访问子节点

java - 如何从 JAX-RS javax.ws.rs.core.Response 获取原始请求的 URI

java - Rest模板ResponseEntity主体正在改变变量的类型,如何控制类型?