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 12 PHP
set_include_path和get_include_path使用及注意事项
Feb 02 PHP
解析php入库和出库
Jun 25 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
Nov 08 PHP
PHP中round()函数对浮点数进行四舍五入的方法
Nov 19 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
Feb 03 PHP
php自动载入类用法实例分析
Jun 24 PHP
zend框架实现支持sql server的操作方法
Dec 08 PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 PHP
PHP读取Excel类文件
May 15 PHP
PHP getNamespaces()函数讲解
Feb 03 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
Oct 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实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
jQuery 白痴级入门教程
2009/11/11 Javascript
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
JSON 编辑器实现代码
2009/12/06 Javascript
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
ie下动态加态js文件的方法
2011/09/13 Javascript
js数组操作学习总结
2013/11/04 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
2014/02/08 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
js实现中文实时时钟
2020/01/15 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
python如何删除文件中重复的字段
2019/07/16 Python
Django缓存系统实现过程解析
2019/08/02 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
小学生成长感言
2014/01/30 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
优秀班组事迹材料
2014/12/24 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
Python集合set()使用的方法详解
2022/03/18 Python