搶的innerHTML我試圖用<bar>
元素來取代一個DOMDocument所有<foo>
元素。做到這一點的最好方法似乎是用getElementsByTagName獲取所有的<foo>
元素,然後創建新元素來替換它們。如何從的DOMNode
問題是,我看不到從被替換的元素中獲取innerHTML。 nodeValue和textContent都返回內部文本,但內部標籤被剝離。我怎樣才能從DOMElement中獲得類似於「innerHTML」的內容?
示例代碼:
function convertTags($doc, $type) {
$bad_nodes = $doc->getElementsByTagName($type);
foreach($bad_nodes as $bad_node) {
$good_node = $doc->createElement("bar", $bad_node->nodeValue);
$bad_node->parentNode->replaceChild($good_node, $bad_node);
}
return $doc;
}
爲什麼你不只是'str_replace函數( '<富', '<酒吧',$文本)'? – kongr45gpen
@ Kongr45pen:因爲這實際上意味着用正則表達式解析HTML。 – jasso