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 zend 相对路径问题
Jan 12 PHP
PHP之COOKIE支持详解
Sep 20 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
php开发留言板的CRUD(增,删,改,查)操作
Apr 19 PHP
使用php显示搜索引擎来的关键词
Feb 13 PHP
一个经典实用的PHP图像处理类分享
Nov 18 PHP
php获取json数据所有的节点路径
May 17 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 PHP
PHP实现找出链表中环的入口节点
Jan 16 PHP
PHP进阶学习之依赖注入与Ioc容器详解
Jun 19 PHP
laravel框架 api自定义全局异常处理方法
Oct 11 PHP
PHP实现两种排课方式
Jun 26 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日历程序
2006/12/06 PHP
php截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
PHP会话控制实例分析
2016/12/24 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
2013/05/07 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
2013/11/12 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
2017/09/10 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
JS删除String里某个字符的方法
2021/01/06 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
python 简易计算器程序,代码就几行
2009/08/29 Python
Python与Redis的连接教程
2015/04/22 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
公司年会晚宴演讲稿
2014/01/06 职场文书
中专自我鉴定
2014/02/05 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
金融与证券专业求职信
2014/06/22 职场文书
科学发展观标语
2014/10/08 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
大学生学期个人总结
2015/02/12 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang