php 修改、增加xml结点属性的实现代码


Posted in PHP onOctober 22, 2013

php 修改 增加xml结点属性的代码,供大家学习参考。
php修改xml结点属性,增加xml结点属性的代码,有需要的朋友,参考下。

1、xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<clientSet>
<server url="192.168.0.180" port="1935" />
<rootPath value="" />
<homePath value="http://www.aaa.com" />
<helpPath value="help.html" />
<language value="en" />
<theme value="default" />
<visibleMarquee value = "true" />
<visibleWhitePaper value="true" />
<showMemberRoomForGuest value = "true" />
<emotions enabled="true" column="5" autoPlay="false">
<item name="Birthday" src="cartoon/movie/birthday.swf" thumb="cartoon/preview/birthday-small.swf" duration="15"/>
<item name="Boom" src="cartoon/movie/boom.swf" thumb="cartoon/preview/boom-small.swf" duration="6"/>
<item name="Bubble" src="cartoon/movie/bubble.swf" thumb="cartoon/preview/bubble-small.swf" duration="7.5"/>
<item name="Cry" src="cartoon/movie/cry.swf" thumb="cartoon/preview/cry-small.swf" duration="5.4"/>
<item name="Doggie" src="cartoon/movie/doggie.swf" thumb="cartoon/preview/doggie-small.swf" duration="13"/>
<item name="Greeting" src="cartoon/movie/greeting.swf" thumb="cartoon/preview/greeting-small.swf" duration="7.4"/>
<item name="Football" src="cartoon/movie/football.swf" thumb="cartoon/preview/football-small.swf" duration="2.2"/>
</emotions >
</clientSet>

2、php代码

<?
$dom=new DOMDocument('1.0');
$dom->load('x.xml');
$em=$dom->getElementsByTagName('emotions');
$em=$em->item(0);
$items=$em->getElementsByTagName('item');
foreach($items as $a){
foreach($a->attributes as $b){
if($b->nodeValue=='Birthday'){
$a->setAttribute('name','nBirthday');
}
}
}
$t=$dom->createElement('item');
$t->setAttribute('name','x');
$t->setAttribute('src','www.baidu.com');
$t->setAttribute('duration','duration');
$em->appendChild($t);
$dom->save('x.xml');
?>

PHP解析XML文档属性并编辑

<?php 
//读取xml 
 $dom=new DOMDocument('1.0'); 
$dom->load('data.xml'); 
$em=$dom->getElementsByTagName('videos');//最外层节点 
$em=$em->item(0); 
$items=$em->getElementsByTagName('video');//节点 
//如果不用读取直接添加的话把下面这一段去掉即可 
foreach($items as $a){ 
foreach($a->attributes as $b){//$b->nodeValue;节点属性的值$b->nodeName;节点属性的名称 
 echo $b->nodeName; 
 echo ":"; 
 echo $b->nodeValue; 
 echo "<br/>"; 
} 
} 
//下面是往xml写入一行新的 
$t=$dom->createElement('video');//<video 
$t->setAttribute('title','1');//<video name="data" 
$t->setAttribute('src','2');//<video name="data" src="2" 
$t->setAttribute('img','1');//<video name="data" img="1" 
$em->appendChild($t);//<video name="data" img="1"/> 
$dom->save('data.xml'); 
?>  
 

当时的xml文档:
 
<?xml version="1.0"?> 
<videos> 
 <video img="a" url="1" title="1" nickname="1" tag="1" vid="1" star="1"/> 
 <video img="b" url="2" title="2" nickname="2" tag="2" vid="2" star="2"/> 
 <video img="c" url="3" title="3" nickname="3" tag="3" vid="3" star="3"/> 
 <video title="d" src="2" img="1"/> 
</videos>

//下面这一个文件是后改的可以修改xml
<?php 
$doc = new DOMDocument(); 
$doc->load('data.xml'); //查找 videos 节点 
$root = $doc->getElementsByTagName('videos'); 
//第一个 videos 节点 
$root = $root->item(0); 
//查找 videos 节点下的 video 节点 
$userid = $root->getElementsByTagName('video'); 
//遍历所有 video 节点 
foreach ($userid as $rootdata) 
{ 
//遍历每一个 video 节点所有属性 
foreach ($rootdata->attributes as $attrib) 
{ 
$attribName = $attrib->nodeName;   //nodeName为属性名称 
$attribValue = $attrib->nodeValue; //nodeValue为属性内容 
//查找属性名称为ip的节点内容 
if ($attribName =='img') 
{ 
//查找属性内容为ip的节点内容 
if ($attribValue =='1') 
{ 
//将属性为img,img内容为1的修改为image; 
$rootdata->setAttribute('img','image'); 
$doc->save('data.xml'); 
} 
} 
} 
}  
?>
PHP 相关文章推荐
PHP 进程锁定问题分析研究
Nov 24 PHP
PHP中uploaded_files函数使用方法详解
Mar 09 PHP
优化PHP程序的方法小结
Feb 23 PHP
php在项目中寻找代码的坏味道(综艺命名)
Jul 19 PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 PHP
php中用memcached实现页面防刷新功能
Aug 19 PHP
Javascript与PHP验证用户输入URL地址是否正确
Oct 09 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
ThinkPHP控制器详解
Jul 27 PHP
php中删除、清空session的方式总结
Oct 09 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
PHP PDOStatement::columnCount讲解
Jan 30 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 #PHP
实用的简单PHP分页集合包括使用方法
Oct 21 #PHP
使用PHP导出Word文档的原理和实例
Oct 21 #PHP
php与java通过socket通信的实现代码
Oct 21 #PHP
PHP与Java进行通信的实现方法
Oct 21 #PHP
php中生成随机密码的自定义函数代码
Oct 21 #PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 #PHP
You might like
php设置session值和cookies的学习示例
2014/03/21 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
php Session无效分析资料整理
2016/11/29 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
2019/05/13 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
JavaScript中的console.assert()函数介绍
2014/12/29 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
JS实现简易换图时钟功能分析
2018/01/04 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
vue实现循环切换动画
2018/10/17 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
全面了解python字符串和字典
2016/07/07 Python
python读写csv文件实例代码
2019/07/05 Python
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
付款委托书范本
2014/10/05 职场文书
检讨书1000字
2014/10/11 职场文书
慰问信格式规范
2015/03/23 职场文书
同事打架检讨书
2015/05/06 职场文书
公司岗位说明书
2015/10/08 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书