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中使用mktime获取时间戳的一个黑色幽默分析
May 31 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
Jun 20 PHP
php setcookie(name, value, expires, path, domain, secure) 参数详解
Jun 28 PHP
php版淘宝网查询商品接口代码示例
Jun 17 PHP
PHP使用静态方法的几个注意事项
Sep 16 PHP
PHP将session信息存储到数据库的类实例
Mar 04 PHP
php将图片保存为不同尺寸图片的图片类实例
Mar 30 PHP
PHP中each与list用法分析
Jan 08 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
Mar 23 PHP
eclipse php wamp配置教程
Jun 30 PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 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 adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
10个简化PHP开发的工具
2014/12/25 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
2015/06/20 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
PHP/HTML混写的四种方式总结
2017/02/27 PHP
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
json实现前后台的相互传值详解
2015/01/05 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
Python中的descriptor描述器简明使用指南
2016/06/02 Python
Python如何获取系统iops示例代码
2016/09/06 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
python装饰器实例大详解
2017/10/25 Python
python 判断网络连通的实现方法
2018/04/22 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
python数据类型强制转换实例详解
2020/06/22 Python
keras K.function获取某层的输出操作
2020/06/29 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
信息专业大学生自我评价分享
2014/01/17 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
2014年秘书工作总结
2014/11/25 职场文书
产品质量保证书范本
2015/02/27 职场文书
丧事答谢词大全
2015/09/30 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电