I have a div in php(string) and I want to get the content.
for example:
<div id="product_list" style="width:100%; float:none;">
<div>
bla bla bla
</div>
bla bla
</div>
and I want
<div>
bla bla bla
</div>
bla bla
The style is changing, I know only the div id.
UPDATED
this is my code, same as turbod source and the results are the same too.
so this is the original html
$doc = new DOMDocument();
$doc->loadHTML($buffer);
$id = $doc->getElementById('product_list')
And after t开发者_如何转开发his code I get the following: link
Use the php DomDocument class. 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"]');
To save an XML/HTML fragment, you need to save each child node:
$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);
Output:
string(74) "
<div>
bla bla bla
</div>
bla bla
"
If you only need the text content, you can fetch it directly:
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
var_dump(
$xpath->evaluate('string(//div[@id="product_list"])')
);
Output:
string(63) "
bla bla bla
bla bla
"
Isn't it enough to do...
$id->nodeValue
精彩评论