我正在使用PHP Simple DOM Parser库,我有一个小问题。我必须解析一个HTML文档,如下所示:
<div>
here the text I want
<strong>another text</strong>
</div>
我想知道是否可以只从div 标签中获取文本(而不是从强标签中获取文本(。是否可以自动执行此操作(无需指定文本的位置(?
提前感谢,
约旦。
您可以获取div
元素的子元素,并查找文本节点(这将排除strong
和其他元素(:
$html = "<div>
here the text I want
<strong>another text</strong>
</div>";
$dom = new DOMDocument;
$dom->loadHTML($html);
$div = $dom->getElementsByTagName('div')[0];
$text = "";
foreach($div->childNodes as $node) {
if ($node->nodeType == XML_TEXT_NODE) $text .= $node->nodeValue;
}
echo trim($text);
如果根元素并不总是div
,但可以是任何元素,则将赋值更改为$div,如下所示:
$div = $dom->getElementsByTagName('body')[0]->childNodes[0];