使用http://simplehtmldom.sourceforge.net/我知道这可以提取html文本:
<?php
include('simple_html_dom.php');
// Create DOM from URL
echo file_get_html('http://www.google.com/')->plaintext;
?>
但如何删除所有文字?
例如,如果我有这个输入HTML:
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Lore Ipsum</h1>
<p>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<br/>
Aenean <em>commodo</em> ligula eget dolor. Aenean massa.
</p>
</body>
</html>
我想用SimpleHtmlDom获取此输出:
<html>
<head>
<title></title>
</head>
<body>
<h1></h1>
<p><br/></p>
</body>
</html>
换句话说,我只想保留文档的结构。
请帮忙。
答案 0 :(得分:3)
我不知道如何使用SimpleHtmlDom做到这一点。从它的手册,我假设像
$html = file_get_html('http://www.google.com/');
foreach( $html->find('text') as $text) {
$text->plaintext = '';
}
但是,您也可以使用PHP的本机DOM解析器。它可以执行XPath查询,一般来说应该更快:
libxml_use_internal_errors(TRUE);
$dom = new DOMDocument;
$dom->loadHTMLFile('http://www.google.com');
$xp = new DOMXPath($dom);
foreach ($xp->query('//text()') as $textNode) {
$textNode->parentNode->removeChild($textNode);
}
$dom->formatOutput = TRUE;
echo $dom->saveXML($dom->documentElement);
答案 1 :(得分:1)
innertext
属性设置为空字符串使用simplehtmldom.php:
$my_html = file_get_html('http://www.google.com/');
$my_html->innertext = "";