Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何在Xpath中将两个节点合并为一个组?_Html_Xml_Xpath - Fatal编程技术网

Html 如何在Xpath中将两个节点合并为一个组?

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”]得到四个组:

我有如下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”]
得到四个组:
[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], '')
)