html - 如何在 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>

有时我使用 //div[@class="a"or @class="b"] 得到四个组:[10, 11, 20, 21].

但是这次我想得到这样的东西,两组:["10 11", "20 21"],可以吗?

我的意思是如何将两个节点(a类,b类)合并为一个组?

最佳答案

这将是一个有效的 XPath 2.0 解决方案 ( running example ):

//div[@class="a"]/concat(
    text(), 
    ' ', 
    string-join((following-sibling::div[@class="b"]/text())[1], '')
)

我认为这里不可能使用 XPath 1.0 的解决方案。

关于html - 如何在 Xpath 中将两个节点合并为一组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33462924/

相关文章:

xml - 在导入 Excel 之前对 XML 应用 XSLT

xml - 如何过滤具有某个子节点的节点

xslt - XPath/XSLT 嵌套谓词 : how to get the context of outer predicate?

表上的 PHP DOM-XPath

java - 使用 dom 解析器 api 在 Java 中覆盖现有 XML 文档

Java JAXB 编码到 DOM 文档

javascript - 如何计算列表中的总计

css - 换页容器内的全宽 &lt;header&gt;

html - 设置局部 View 的可变宽度

html - 使用css拉伸(stretch)字体最实用的方法