使用DOMXPath排除标记数组

时间:2017-06-09 14:15:12

标签: php xpath

我正在使用:

$dom = new \DOMDocument();
$xpath = new \DOMXPath( $dom );

修改我的页面的DOM。

我可以使用以下内容排除所有带有a标记的元素:

$xpath->query( '//text()[not(ancestor::a)]' )

我想排除动态的标记数组,例如:

$array => ['a', 'img', 'code'];

是否有方便的方法来捆绑这些条件?

1 个答案:

答案 0 :(得分:1)

这只是迭代字符串构建的问题。实际上,您可以使用implode()为您的简单,索引,平面数组自动化迭代:

$array => ['a', 'img', 'code'];
$xpath->query( '//text()[ not(ancestor::'.implode(') and not(ancestor::', $array).']'))

应该产生:

$xpath->query( '//text()[not(ancestor::a) and not(ancestor::img) and not(ancestor::code)]')