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 相关文章推荐
检测png图片是否完整的php代码
Sep 06 PHP
php学习之 循环结构实现代码
Jun 09 PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
Nov 07 PHP
PHP反向代理类代码
Aug 15 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
PHP 输出缓冲控制(Output Control)详解
Aug 25 PHP
PDO::inTransaction讲解
Jan 28 PHP
PHP文件上传小程序 适合初学者学习!
May 23 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
Oct 18 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
php跨服务器访问方法小结
2015/05/12 PHP
Javascript计算时间差的函数分享
2011/07/04 Javascript
新发现一个骗链接的方法(js读取cookies)
2012/01/11 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
Python学习笔记(二)基础语法
2014/06/06 Python
Python库urllib与urllib2主要区别分析
2014/07/13 Python
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
python使用win32com库播放mp3文件的方法
2015/05/30 Python
Python装饰器基础详解
2016/03/09 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
使用Python实现分别输出每个数组
2019/12/06 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
Pytorch mask_select 函数的用法详解
2020/02/18 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
网络技术支持面试题
2013/04/22 面试题
社区党务公开实施方案
2014/03/18 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
小学同学聚会感言
2015/07/30 职场文书
vue3不同环境下实现配置代理
2022/05/25 Vue.js
PostgreSQL怎么创建分区表详解
2022/06/25 PostgreSQL