php 修改 增加xml结点属性的代码,供大家学习参考。
php修改xml结点属性,增加xml结点属性的代码,有需要的朋友,参考下。
1、xml文件
<?xml version="1.0" encoding="UTF-8" ?><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
2、php代码
<?<BR>$dom=new DOMDocument('1.0');<BR>$dom->load('x.xml');<BR>$em=$dom->getElementsByTagName('emotions');<BR>$em=$em->item(0);<BR>$items=$em->getElementsByTagName('item');<BR>foreach($items as $a){<BR>foreach($a->attributes as $b){<BR>if($b->nodeValue=='Birthday'){<BR>$a->setAttribute('name','nBirthday');<BR>}<BR>}<BR>}<BR>$t=$dom->createElement('item');<BR>$t->setAttribute('name','x');<BR>$t->setAttribute('src','www.baidu<a>本2文来*源gao($daima.com搞@代@#码(网</a><strong>搞gaodaima代码</strong>.com');<BR>$t->setAttribute('duration','duration');<BR>$em->appendChild($t);<BR>$dom->save('x.xml');<BR>?><BR>
PHP解析XML文档属性并编辑
<?php <BR>//读取xml <BR> $dom=new DOMDocument('1.0'); <BR>$dom->load('data.xml'); <BR>$em=$dom->getElementsByTagName('videos');//最外层节点 <BR>$em=$em->item(0); <BR>$items=$em->getElementsByTagName('video');//节点 <BR>//如果不用读取直接添加的话把下面这一段去掉即可 <BR>foreach($items as $a){ <BR>foreach($a->attributes as $b){//$b->nodeValue;节点属性的值$b->nodeName;节点属性的名称 <BR> echo $b->nodeName; <BR> echo ":"; <BR> echo $b->nodeValue; <BR> echo "<br />"; <BR>} <BR>} <BR>//下面是往xml写入一行新的 <BR>$t=$dom->createElement('video');//<video <BR>$t->setAttribute('title','1');//<video name="data" <BR>$t->setAttribute('src','2');//<video name="data" src="2" <BR>$t->setAttribute('img','1');//<video name="data" img="1" <BR>$em->appendChild($t);//<video /> <BR>$dom->save('data.xml'); <BR>?> <BR>
当时的xml文档:
<?xml version="1.0"?> <BR> <BR> <video title="1" /> <BR> <video title="2" /> <BR> <video title="3" /> <BR> <video title="d" src="2" /> <BR> <BR>
//下面这一个文件是后改的可以修改xml
<?php <BR>$doc = new DOMDocument(); <BR>$doc->load('data.xml'); <br><br>//查找 videos 节点 <BR>$root = $doc->getElementsByTagName('videos'); <br><br>//第一个 videos 节点 <BR>$root = $root->item(0); <br><br>//查找 videos 节点下的 video 节点 <BR>$userid = $root->getElementsByTagName('video'); <br><br>//遍历所有 video 节点 <BR>foreach ($userid as $rootdata) <BR>{ <BR>//遍历每一个 video 节点所有属性 <BR>foreach ($rootdata->attributes as $attrib) <BR>{ <BR>$attribName = $attrib->nodeName; //nodeName为属性名称 <BR>$attribValue = $attrib->nodeValue; //nodeValue为属性内容 <br><br>//查找属性名称为ip的节点内容 <BR>if ($attribName =='img') <BR>{ <BR>//查找属性内容为ip的节点内容 <BR>if ($attribValue =='1') <BR>{ <BR>//将属性为img,img内容为1的修改为image; <BR>$rootdata->setAttribute('img','image'); <BR>$doc->save('data.xml'); <BR>} <BR>} <BR>} <BR>} <BR>?><BR>