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下mysql数据库操作类(改自discuz)
Jul 03 PHP
PHP如何解决网站大流量与高并发的问题
Jun 25 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
php数组编码转换示例详解
Mar 11 PHP
yii2.0之GridView自定义按钮和链接用法
Dec 15 PHP
修复ShopNC使用QQ 互联时提示100010 错误
Nov 08 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
PHP远程调试之XDEBUG
Dec 29 PHP
PHP用FTP类上传文件视频等的简单实现方法
Sep 23 PHP
highchart数据源纵轴json内的值必须是int(详解)
Feb 20 PHP
PHP以json或xml格式返回请求数据的方法
May 31 PHP
PHP实用小技巧之调用录像的方法
Dec 05 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
如何分别全角和半角以避免乱码
2006/10/09 PHP
用PHP读取IMAP邮件
2006/10/09 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
js显示时间 js显示最后修改时间
2013/01/02 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
2020/05/28 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
python实现端口转发器的方法
2015/03/13 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
python 处理string到hex脚本的方法
2018/10/26 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
环保公益广告语
2014/03/13 职场文书
论文评审意见
2015/06/05 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
python使用glob检索文件的操作
2021/05/20 Python
Go语言基础map用法及示例详解
2021/11/17 Golang