Html 如何在Xpath中将两个节点合并为一个组?
我有如下html:Html 如何在Xpath中将两个节点合并为一个组?,html,xml,xpath,Html,Xml,Xpath,我有如下html: <div> <div class="a">10</div> <div class="b">11</div> <div class="a">20</div> <div class="b">21</div> </div> 10 11 20 21 有时我使用//div[@class=“a”或@class=“b”]得到四个组:
<div>
<div class="a">10</div>
<div class="b">11</div>
<div class="a">20</div>
<div class="b">21</div>
</div>
10
11
20
21
有时我使用//div[@class=“a”或@class=“b”]
得到四个组:[10,11,20,21]
但这次我想得到这样的东西,两组:[“10 11”,“20 21”]
,可以吗
我的意思是,如何将两个节点(类a、类b)组合成一个组?这将是一个有效的XPath 2.0解决方案():
我认为XPath 1.0的解决方案在这里是不可能的。XPath 1.0只有四种数据类型:节点集、字符串、数字和布尔值。您想要的结果不是这些类型之一的实例,因此XPath 1.0无法返回它。然而,XPath2.0允许字符串序列,正如@LukasEder所指出的,它可以通过2.0实现,您可以得到您所描述的想要的。问题是什么?使用//div[@class=“a”或@class=“b”]我有四个组,但我想得到两个组,每个组包含类a,类b,像这样,组1:“10 11”,组2:“20 21”仅使用XPath,还是XSLT也是一个选项?我只能在该项目中使用XPath和CSS选择器。
//div[@class="a"]/concat(
text(),
' ',
string-join((following-sibling::div[@class="b"]/text())[1], '')
)