鉴于以下HTML:
$content =
'<html>
<body>
<div>
<p>During the interim there shall be nourishment supplied</p>
</div>
<div>
<p>During the <a href="#">interim</a> there shall be interim nourishment supplied</p>
</div>
<div>
<ul><li>During the interim there shall be nourishment supplied</li></ul>
</div>
</body>
</html>';
我希望所有包含单词“ interim”的节点,但如果单词“ interim”是链接元素的一部分,则不要。
我希望返回的节点仅是第一个P节点和LI节点。
我尝试了以下方法:
'//*/text()[not(a) and contains(.,"interim")]'
...但这仍然返回A,并且还返回其父P节点的一部分(A后面的部分),而这两个都不是所需的。您可以在这里看到我的尝试:https : //glot.io/snippets/ehp7hmmglm
如果使用XPath表达式,//*[not(self::a) and not(a) and text()[contains(.,"interim")]]
则将获得不包含a
元素,不是a
元素且包含包含该单词的文本节点子元素的所有元素。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句