用PHP dom 处理xml,增加或者修改节点

今天有人在PHP的群里面问这样一个问题:

<?xml version="1.0" coding="utf-8"?>
<country>
<city>北京</city>
<city>香港</city>
<city>上海</city>
</country>

如果在香港前面加上一个<city>杭州</city>。今天请假在家,就花了几分钟,解决了这个问题。

 

 

<?php
$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<country>
<city>北京</city>
<city>香港</city>
<city>上海</city>
</country>
XML;

$dom = new DOMDocument('1.0', 'utf-8');
$dom->loadXML($xml);
$city = $dom->getElementsByTagName('city');
$element = $dom->createElement('city', '杭州');
$textNode = $dom->createTextNode("\n");
foreach ($city as $node)
{
    
$value = $node->nodeValue;
    
if (trim($value== '香港')
    {
        
//insert before
        $node->parentNode->insertBefore($element, $node);
        
$node->parentNode->insertBefore($textNode, $node);
    }
}
echo $dom->saveXML();

 

posted @ 2011-02-28 21:18  暮夏  阅读(1933)  评论(0编辑  收藏  举报