2010-09-01 65 views
3

是否有檢索div元素中包含的HTML(和JavaScript)的方法?xPath中的innerHTML?

+0

對這些線程有關? http://stackoverflow.com/questions/3615356/xpath-doesnt-retrieve-html-as-part-of-what-is-needed http://stackoverflow.com/questions/3615205/xpath-doesnt-retrieve-html作爲內容的一部分 – 2010-09-01 06:22:49

+0

答案可能是肯定的,但沒有輸入樣本,並且是其他問題的副本。 – 2010-09-01 14:13:52

回答

-1

現在關於:

// DIV [@ ID = '您的DIV']

如果你不關心性能?

2

我不是一個PHP開發人員,但我發現這一點:

function getNodeInnerHTML(DOMNode $oNode) 
{ 
    $oDom = new DOMDocument(); 
    foreach($oNode->childNode as $oChild) 
    { 
     $oDom->appendChild($oDom->importNode($oChild, true)); 
    } 
    return $oDom->saveHTML(); 
} 

http://www.sitepoint.com/forums/showthread.php?p=4225203

我不認爲你可以選擇的內容,包括只用XPath的,所以喜歡的一個功能之上可能是必要的。然後你選擇你的div,如//div[@id='someID']

-1

這將給你outerHTML而不是innerHTML,但你可以輕鬆地去除額外的DIV標籤兩端。

工作例如:

$xpath = new DOMXPath(@DOMDocument::loadHTML($the_html_code)) ; 
$domElement = $xpath->evaluate("//div[@id='ID_of_the_div']")->item(0) ; 
$outerHTML = $domElement->ownerDocument->saveXML($domElement) ; 
0
$xml=new DOMDOCUMENT(); 
@$xml->loadHTML($htmlcontents); 
$xpath=new DOMXPATH($xml); 
$nodes=$xpath->query($xpath); 

function getHtml($nodes) { 
    $result = ''; 
    foreach ($nodes as $node) { 
     $result .= $node->ownerDocument->saveHtml($node); 
    } 
return $result; 
} 

來源: how to get innerhtml by classname or id using php