【发布时间】:2012-08-24 09:39:08
【问题描述】:
我想检索某个标签中的 html 代码。我知道 DomDocument 可以做到这一点。但是,如果我想提取没有外层标签的内容,如何实现呢?
例如,
$html = '<div><span>Hello world!</span><br><p>some other text</p></div>';
$doc = new DOMDocument;
$doc->loadHTML($html);
echo $doc->saveXML($doc->getElementsByTagName('div')->item(0));
这将输出,
<div>
<span>Hello world!</span>
<br>
<p>some other text</p>
</div>
我想要它没有外部 div 标签。我尝试了节点值,但它剥离了所有标签。
$html = '<div><span>Hello world!</span><br><p>some other text</p></div>';
$doc = new DOMDocument;
$doc->loadHTML($html);
$node = $doc->getElementsByTagName('div')->item(0);
echo $node->nodeValue;
有什么想法吗?
【问题讨论】:
-
您的要求实际上没有意义,您要求标签及其内容,但随后您说您不想要标签。既然你知道你要的是什么标签,你可以用正则表达式简单地删除它,或者你可以简单地选择你想要的标签,不介意有外部标签。
-
您的问题答对了。这意味着这个问题是有道理的。如果您认为这很简单,您可以发布解决方案吗?
-
我同意这是有道理的,有时我会忘记自己。我已经发布了一个适合你的解决方案。
标签: php web-scraping domdocument html