【问题标题】:DOM: fetch all text nodes in the document (PHP)DOM:获取文档中的所有文本节点(PHP)
【发布时间】:2009-04-20 15:18:05
【问题描述】:

我有以下 (PHP) 代码遍历整个 DOM 文档以获取所有文本节点。这是一个有点丑陋的解决方案,我相信一定有更好的方法......那么,有吗?

$skip = false;
$node = $document;
$nodes = array();
while ($node) {
    if ($node->nodeType == 3) {
        $nodes[] = $node;
    }
    if (!$skip && $node->firstChild) {
        $node = $node->firstChild;
    } elseif ($node->nextSibling) {
        $node = $node->nextSibling;
        $skip = false;
    } else {
        $node = $node->parentNode;
        $skip = true;
    }
}

谢谢。

【问题讨论】:

    标签: php dom text traversal


    【解决方案1】:

    您需要的 XPath 表达式是 //text()。尝试将它与DOMXPath::query 一起使用。例如:

    $xpath = new DOMXPath($doc);
    $textnodes = $xpath->query('//text()');
    

    【讨论】:

      猜你喜欢
      • 2011-09-18
      • 1970-01-01
      • 2020-06-21
      • 2013-11-22
      • 2012-04-19
      • 1970-01-01
      • 2011-01-24
      • 2010-11-30
      相关资源
      最近更新 更多