0
即時嘗試做一個函數,返回一個div的內部HTML與一個特定的類名。 我周圍搜索和人們似乎說xpath查詢是要走的路。 這就是我的了:php/xpath查詢:如何獲取div的內容,可能嵌套的div?
function getDivContent($html, $classname) {
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$result = $xpath->query('//div[class="'.$classname.'"]');
return $result;
}
但它只返回:
object(DOMNodeList)#3 (0) { }
任何人都可以發現這個錯誤嗎?
編輯:溶液:
function nodeContent($n, $outer=false) {
$d = new DOMDocument('1.0');
$b = $d->importNode($n->cloneNode(true),true);
$d->appendChild($b); $h = $d->saveHTML();
// remove outter tags
if (!$outer) $h = substr($h,strpos($h,'>')+1,-(strlen($n->nodeName)+4));
return $h;
}
function getDivContentByClass($html, $class) {
$query = "//div[@class='$class']";
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$result = $xpath->query($query);
$data = nodeContent($result->item(0));
return $data;
}
我試過這個,但是我得到這個錯誤:致命錯誤:不能使用DOMNodeList類型的對象作爲數組,並且這是引發它的代碼'var_dump($ result [0] - > nodeValue);' –
Doh,right 。抱歉。我的錯。我編輯了答案。 –
'nodeValue'根本不等同於'innerHTML'。 – salathe