如何在HTML片段中找到文本节点?

Sha*_*ron 5 php dom

我正在尝试使用PHP DOM函数解析HTML代码段.除了段落,跨度和换行符之外,我已经删除了所有内容,现在我想要检索所有文本及其附带的样式.

所以,我想逐一获取每一段文字,然后我可以回到树上获取特定属性的值(我只对一些特定的文本感兴趣,比如颜色等等) ).

我怎样才能做到这一点?或者我是否以错误的方式思考它?

谢谢!

Tha*_*hai 10

假设你有一个DOMDocument:

$doc = new DOMDocument();
$doc->loadHTMLFile('http://stackoverflow.com/');
Run Code Online (Sandbox Code Playgroud)

您可以使用简单的Xpath找到所有文本节点.

$xpath = new DOMXpath($doc);
$textNodes = $xpath->query('//text()');
Run Code Online (Sandbox Code Playgroud)

只是foreach在它遍历所有textnodes:

foreach ($textNodes as $textNode) {
    echo $textNode->data . "\n";
}
Run Code Online (Sandbox Code Playgroud)

从那里,您可以使用上传DOM树->parentNode.

希望这可以给你一个良好的开端.