在与Xpath保持联系的同时提取信息

时间:2019-07-11 20:14:22

标签: xpath

我有一个html / xml文件,其结构如下:

<a class="my-class">
  <b>Text1</b>
  <c>
    <d>123</d>
    <d>456</d>
  </c>
  <b>Text2</b>
  <c>
    <d>789</d>
    <d>000</d>
  </c>
</a

我正在搜索一个xPath表达式,该表达式可以给我这样的输出(在任何类型的列表中):

Text1.123
Text1.456
Text2.789
Text2.000

我使用concat()进行了测试,但是我不知道如何提取这些信息以及如何仅使用一个xPath表达式来保持它们之间的关系。 那有可能吗?

1 个答案:

答案 0 :(得分:0)

这只能通过 XPath-2.0或更高版本实现。
因此,以下XPath-2.0表达式将实现您想要的:

for $c in /a/c return for $i in $c/d return concat($c/preceding-sibling::b[1],'.',$i,'&#xa;')

其输出为:

Text1.123
Text1.456
Text2.789
Text2.000

可能会有一些前导空格,但这取决于XPath处理器。