java - 当有多个子节点时如何一一获取XPath路径?

标签 java xml xpath

我有一个以下形式的 XML

<H1>h1</H1>
<H2>h2</H2>
<H3>
  <H4>h4-1</H4>
    <H5>
      <H6>h6-11</H6>
      <H7>h7-11</H7>
    </H5>
    <H5>
      <H6>h6-12</H6>
      <H7>h7-12</H7>
    </H5>
  </H4>
  <H4>h4-2</H4>
    <H5>
      <H6>h6-21</H6>
      <H7>h7-21</H7>
    </H5>
    <H5>
      <H6>h6-22</H6>
      <H7>h7-22</H7>
    </H5>
  </H4>
</H3>

我想获取 H7 之前的所有路径,即

h1,h2,h4-1,h6-11,h7-11
h1,h2,h4-1,h6-12,h7-12
h1,h2,h4-2,h6-21,h2-21
h1,h2,h4-2,h6-22,h7-22

如何在 Java 中使用 XPath 来做到这一点?我知道当每个节点都有一个子节点但无法弄清楚多个子节点时该怎么做。

最佳答案

XPath 只能帮助您识别输入文件中的文本之一。例如:

/H3/H4[2]/H5[1]/H6[2]/text()

将引用文本“h7-21”

要迭代事物,您需要的不仅仅是 XPath。例如 XSLT 或 Java 代码。

关于java - 当有多个子节点时如何一一获取XPath路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40859184/

相关文章:

java - 在 Hibernate 继承映射策略中绕过 "Table per Concrete Class"

java - 无法访问 WSDL 端点

java - 在Java中向大量XML文件的开头添加属性的最有效方法?

python - 为什么尝试使用 selenium 单击会出现 "ElementNotInteractableException"?

javascript - 使用 casperjs 抓取文本节点的最快方法

java - Java 中未使用的参数

java - 是否可以使用Java获取Chrome实时控制台日志?

php - 导入 XML 节点并删除命名空间

c++ - 在 C++ 代码中创建 XML

r - 使用rvest提取html表