我在php(字符串)中有一个div,我想获取内容。
例如:
<div id="product_list" style="width:100%; float:none;">
<div>
bla bla bla
</div>
bla bla
</div>
我想要
<div>
bla bla bla
</div>
bla bla
风格正在改变,我只知道div id。
已更新
这是我的代码,与turbod源相同,结果也一样。
所以这是原来的html
$doc = new DOMDocument();
$doc->loadHTML($buffer);
$id = $doc->getElementById('product_list')
在此代码之后,我得到以下内容:link
答案 0 :(得分:17)
使用php DomDocument类。 http://www.php.net/manual/en/class.domdocument.php
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$divContent = $xpath->query('//div[id="product_list"]');
答案 1 :(得分:2)
要保存XML / HTML片段,您需要保存每个子节点:
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$result = '';
foreach($xpath->evaluate('//div[@id="product_list"]/node()') as $childNode) {
$result .= $dom->saveHtml($childNode);
}
var_dump($result);
输出:
string(74) "
<div>
bla bla bla
</div>
bla bla
"
如果您只需要文字内容,可以直接获取:
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
var_dump(
$xpath->evaluate('string(//div[@id="product_list"])')
);
输出:
string(63) "
bla bla bla
bla bla
"
答案 2 :(得分:-1)
这还不够......
$id->nodeValue