我有这样的HTML:
<div>
<div class="a">10</div>
<div class="b">11</div>
<div class="a">20</div>
<div class="b">21</div>
</div>
有时我会使用//div[@class="a" or @class="b"]
来获得四个群组:[10, 11, 20, 21]
。
但是这次我想得到这样的东西,两组:["10 11", "20 21"]
,我可以吗?
我的意思是如何将两个节点(a类,b类)组合成一个组?
答案 0 :(得分:2)
这将是一个有效的XPath 2.0解决方案(running example):
//div[@class="a"]/concat(
text(),
' ',
string-join((following-sibling::div[@class="b"]/text())[1], '')
)
我不认为这里可以使用XPath 1.0的解决方案。
答案 1 :(得分:1)
XPath 1.0只有四种数据类型:node-set,string,number和boolean。您所需的结果不是这些类型之一的实例,因此没有XPath 1.0可以返回它。但是,XPath 2.0允许字符串序列,以便@LukasEder指出,它可以用2.0完成