0

实际上,我正在尝试检索数组列表中包含 3 个或更多单词的所有 html 元素:

$xp= new DomXPath($myhtmlpage);

附近但错了!

$xp->query("/* my xpath expression + content +regex + count condition */");

有什么办法?

4

1 回答 1

2

并非完全防故障,但在 XPath 1.0 中,会有一个相当丑陋的解决方案,这里说明了匹配p包含至少 3 个单词的元素,顺序为“cat”、“apple”、“tree”、“bottle”

.//p[
        (
            number(contains(., "cat")) +
            number(contains(., "apple")) +
            number(contains(., "tree")) +
            number(contains(., "bottle"))
         ) >= 3
     ]
  • contains(., "word")如果上下文节点包含所需的单词,则返回布尔值
  • 使用 1/0 转换为真/假number()
  • 用每个单词一个表达来总结
  • 并测试您想要的最少单词数
于 2013-09-21T15:15:58.083 回答