PHP DOM中的childnodes是常用的对象,它表示当前节点的所有子节点,包括文本节点、元素节点等。在解析XML或HTML文档的时候,childnodes经常用来查找或修改某个元素的子节点,或者遍历整个文档树。下面我们通过几个例子来演示如何使用PHP DOM的childnodes。
首先,我们可以通过getElementsByTagName方法获取某个元素的全部子节点。例如以下代码:
$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,输出所有元素节点的nodeName和nodeValue。这样就能够输出book元素的全部子节点,包括title、author和price。
其次,我们还可以通过nodeValue来获取某个节点的文本内容。例如以下代码:
$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文档中的节点内容。
最后,我们还可以通过appendChild方法来添加节点。例如以下代码:
$xml = new DOMDocument(); $xml->loadXML(''); $gender = $xml->createElement('gender', '男'); $xml->getElementsByTagName('person')->item(0)->appendChild($gender); echo $xml->saveXML(); 张三 20 北京市
上面代码中,我们创建了一个名为gender的元素节点,并设置它的文本内容为“男”。然后,我们使用appendChild方法将gender节点添加到person节点中。最后,我们输出整个XML文档,发现gender节点已经成功添加到了person节点中。
综上所述,PHP DOM的childnodes是一个非常常用的对象,它可以帮助我们查找、遍历、修改XML或HTML文档的子节点,提高开发效率。在使用childnodes时,我们可以结合自己的实际需求,使用各种方法来实现相应的功能。