我有一个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表达式来保持它们之间的关系。 那有可能吗?
答案 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,'
')
其输出为:
Text1.123
Text1.456
Text2.789
Text2.000
可能会有一些前导空格,但这取决于XPath处理器。