用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();

 

你可能感兴趣的:(用PHP dom 处理xml,增加或者修改节点)