我过去广泛使用 XPath。目前我面临一个问题,我无法解决。
约束
- 纯 XPath 1.0
- 没有辅助功能(例如没有“concat()”)
HTML标记
<span class="container">
Peter: Lorem Impsum
<i class="divider" role="img" aria-label="|"></i>
Paul Smith: Foo Bar BAZ
<i class="divider" role="img" aria-label="|"></i>
Mary: One Two Three
</span>
挑战
我想提取三个连贯的字符串:
- 彼得:Lorem Impsum
- 保罗·史密斯:Foo Bar BAZ
- 玛丽:一二三
XPath
以下 XPath 查询是我经过 HOURS 研究后得出的最好的查询:
XPath 查询 1
//span[contains(@class, "container")]
=> Peter: Lorem ImpsumPaul Smith: Foo Bar BAZMary: One Two Three
XPath 查询 2
//span[contains(@class, "container")]//text()
Peter: Lorem Impsum Paul Smith: Foo Bar BAZ Mary: One Two Three
问题
尽管之后可以使用 (PHP) 字符串函数对生成的字符串进行后处理,但我无法将其拆分为正确的三个块:我需要一个 XPath 查询,它使我能够正确区分文本节点。
是否可以在文本节点之间集成一些“人工分隔符”?