如果有多个子节点,如何逐个获取XPath路径?

时间:2016-11-29 06:31:32

标签: 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?我知道如果每个节点都有一个子节点但是无法计算出多个子节点,该怎么做。

2 个答案:

答案 0 :(得分:1)

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

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

会引用文字“h7-21”

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

答案 1 :(得分:0)

// H1 | // H2 | // H3 | // H4 | // H5 | // H6 | // H7 尝试这个,它将选择所有标签