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自动生成月历代码
Oct 09 PHP
?算你??的 PHP 程式大小
Dec 06 PHP
谈谈新手如何学习PHP 默默经典版本
Aug 04 PHP
PHP 分页原理分析,大家可以看看
Dec 21 PHP
PHP开启gzip页面压缩实例代码
Mar 11 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
Jul 05 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
php生成二维码
Aug 10 PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 PHP
thinkphp jquery实现图片上传和预览效果
Jul 22 PHP
PHP iconv()函数字符编码转换的问题讲解
Mar 22 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调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
JavaScript实现获取远程的html到当前页面中
2017/03/26 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
Python Json序列化与反序列化的示例
2018/01/31 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
Python笔记之facade模式
2019/11/20 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
高三自我鉴定
2013/10/23 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
致运动员加油稿
2015/07/21 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书