在 PHP 中使用 DomXpath 时跳过节点

Skipping nodes when using DomXpath in PHP

我正在使用 DomXpath 查询查找文件中的所有 HTML 元素,这些元素包含用户在浏览器呈现页面时会看到的文本。

下面几行代码可以很好地解决问题:

$xpath = new DOMXpath($doc);
$results = $xpath->query("//text()");

但是,也有一些副作用。例如,如果您有

<style>

标签在你的 HTML 中,它会在里面读取并解析所有 CSS 元素,我想完全忽略它。我似乎无法找到一种方法来形成上面的查询来忽略一个或多个文本元素。任何帮助,将不胜感激。

我找到了避免使用 <style> 标签的方法。

$results = $xpath->query("//body//text()")

这将忽略 HTML 文件正文之前的所有内容。