PHP DOM中的childnodes是常用的對象,它表示當前節(jié)點的所有子節(jié)點,包括文本節(jié)點、元素節(jié)點等。在解析XML或HTML文檔的時候,childnodes經(jīng)常用來查找或修改某個元素的子節(jié)點,或者遍歷整個文檔樹。下面我們通過幾個例子來演示如何使用PHP DOM的childnodes。
首先,我們可以通過getElementsByTagName方法獲取某個元素的全部子節(jié)點。例如以下代碼:
$xml = new DOMDocument(); $xml->loadXML(''); $book = $xml->getElementsByTagName('book')->item(0); foreach($book->childNodes as $node) { if($node->nodeType === XML_ELEMENT_NODE) { echo $node->nodeName.'='.$node->nodeValue."\n"; } } PHP XML John 19.99
上面代碼中,我們先使用getElementsByTagName方法獲取到book元素,然后遍歷它的childNodes,輸出所有元素節(jié)點的nodeName和nodeValue。這樣就能夠輸出book元素的全部子節(jié)點,包括title、author和price。
其次,我們還可以通過nodeValue來獲取某個節(jié)點的文本內(nèi)容。例如以下代碼:
$xml = new DOMDocument(); $xml->loadXML(''); $name = $xml->getElementsByTagName('name')->item(0)->nodeValue; $age = $xml->getElementsByTagName('age')->item(0)->nodeValue; $address = $xml->getElementsByTagName('address')->item(0)->nodeValue; echo "姓名:".$name.",年齡:".$age.",地址:".$address; 張三 20 北京市
上面代碼中,我們從person元素中獲取三個子元素的nodeValue,然后輸出姓名、年齡和地址。這樣就能夠獲取XML文檔中的節(jié)點內(nèi)容。
最后,我們還可以通過appendChild方法來添加節(jié)點。例如以下代碼:
$xml = new DOMDocument(); $xml->loadXML(''); $gender = $xml->createElement('gender', '男'); $xml->getElementsByTagName('person')->item(0)->appendChild($gender); echo $xml->saveXML(); 張三 20 北京市
上面代碼中,我們創(chuàng)建了一個名為gender的元素節(jié)點,并設(shè)置它的文本內(nèi)容為“男”。然后,我們使用appendChild方法將gender節(jié)點添加到person節(jié)點中。最后,我們輸出整個XML文檔,發(fā)現(xiàn)gender節(jié)點已經(jīng)成功添加到了person節(jié)點中。
綜上所述,PHP DOM的childnodes是一個非常常用的對象,它可以幫助我們查找、遍歷、修改XML或HTML文檔的子節(jié)點,提高開發(fā)效率。在使用childnodes時,我們可以結(jié)合自己的實際需求,使用各種方法來實現(xiàn)相應(yīng)的功能。