题
我正在尝试使用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);
不隶属于 StackOverflow