我正在尝试使用PHP DOM函数来解析HTML摘要。除了段落,跨度和断路标签之外,我已经剥离了所有内容,现在我想检索所有文本,以及其随附的样式。

因此,我想一个一个一个文本,一个一个,对于每个文本,我都可以返回树以获取特定属性的值(我只对某些特定的属性感兴趣,例如颜色等。)。

我怎样才能做到这一点?还是我以错误的方式考虑?

谢谢!

没有正确的解决方案

其他提示

假设您在这里有一个domdocument:

$doc = new DOMDocument();
$doc->loadHTMLFile('http://stackoverflow.com/');

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

$xpath = new DOMXpath($doc);
$textNodes = $xpath->query('//text()');

只是 foreach 遍历所有文本节点:

foreach ($textNodes as $textNode) {
    echo $textNode->data . "\n";
}

由此,您可以使用 ->parentNode.

希望这可以为您带来良好的开端。

对于那些对CSS3选择器更舒适的人,并且愿意在他们的项目中包括一个额外的PHP课程,我建议使用 简单的PHP DOM解析器. 。该解决方案看起来如下:

$html = file_get_html('http://www.example.com/');

$ret = $html->find('p, span');    
$store = array();

foreach($ret as $element) {
    $store[] = array($element->tag => array('text' => $element->innertext, 
                                            'color' => $element->color, 
                                            'style' => $element->style));
}
print_r($store);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top