再看一下现在的t.xml文件的内容,count属性已经添加上。
<?xml version="1.0"?> <EventList> <event obj="power" info="power is shutdown" count="1">PHP0</event> <event obj="memcache" info="memcache used than 90%" count="1">PHP1</event> <event obj="cpu" info="cpu used than 95%" count="1">PHP2</event> <event obj="disk" info="disk is removed" count="1">PHP3</event> </EventList>
三、修改节点属性&节点值
以上一节中的t.xml文件为操作对象,修改一下obj属性是cpu的节点的count值,新的值为count+1 。
/*
* 修改某一个节点的属性和值
*/
$dom = new DOMDocument('1.0');
$dom->load('./t.xml');
$list = $dom->getElementsByTagName('event');
foreach($list as $item){
$attr_obj = $item->getAttribute('obj');
if($attr_obj == 'cpu'){//修改cpu的count属性,使其值+1
$attr_count = $item->getAttribute('count');//获取count属性的值
$item->setAttribute('count',$attr_count+1);//重置count属性的值
$item->nodeValue = 'Hello,Kitty';//重置节点的值
}
}
$dom->save('./t.xml');
操作后的t.xml文件如下,要以看到obj=cpu的节点的count属性已经改变,值也修改成功。
<?xml version="1.0"?> <EventList> <event obj="power" info="power is shutdown" count="1">PHP0</event> <event obj="memcache" info="memcache used than 90%" count="1">PHP1</event> <event obj="cpu" info="cpu used than 95%" count="2">Hello,Kitty</event> <event obj="disk" info="disk is removed" count="1">PHP3</event> </EventList>
四、删除节点
要添加就会有删除。以上节的t.xml文件为操作对象,删除obj=disk的节点。
/*
* 删除节点
*/
$dom = new DOMDocument('1.0');
$dom->load('./t.xml');
$list = $dom->getElementsByTagName('event');
foreach($list as $item){
if($item->getAttribute('obj') == 'disk'){//以obj=disk的节点为操作对象
$item->parentNode->removeChild($item);//删除节点
}
}
$dom->save('./t.xml');
看一下操作后的t.xml文件内容,obj=disk的节点已被成功删除。
<?xml version="1.0"?> <EventList> <event obj="power" info="power is shutdown" count="1">PHP0</event> <event obj="memcache" info="memcache used than 90%" count="1">PHP1</event> <event obj="cpu" info="cpu used than 95%" count="2">Hello,Kitty</event> </EventList>
向根节点中添加新的子节点
以上一节的t.xml为操作对象,向根节点EventList中添加一个新的子节点。
/*
* 向EventList中添加一个子节点
*/
$dom = new DOMDocument('1.0');
$dom->load('./t.xml');
$event_list = $dom->getElementsByTagName('EventList');//获取根节点
$event = $dom->createElement('event','lenovo');//新建节点
$event_list->item(0)->appendChild($event);//将新建节点添加到根节点中
$event_attr_obj = $dom->createAttribute('obj');
$event_attr_obj->value = 'lenovo';
$event->appendChild($event_attr_obj);
$event_attr_info = $dom->createAttribute('info');
$event_attr_info->value = 'thinkpad t430';
$event->appendChild($event_attr_info);
$dom->save('./t.xml');







