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高手?学会“懒惰”的编程
Dec 05 PHP
MySQL数据源表结构图示
Jun 05 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
Jun 11 PHP
PHP基础学习小结
Apr 17 PHP
PHP代码优化技巧小结
Sep 29 PHP
php验证手机号码
Nov 11 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
Mar 01 PHP
thinkPHP模板中函数的使用方法示例
Nov 30 PHP
PHP+JQUERY操作JSON实例
Mar 23 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
实例讲解通过​PHP创建数据库
Jan 20 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函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
php递归json类实例
2014/12/02 PHP
php抽象类用法实例分析
2015/07/07 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
Javascript调试工具(下载)
2007/01/09 Javascript
基于JQuery的6个Tab选项卡插件
2010/09/03 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
JS实现类似百叶窗下拉菜单效果
2016/12/30 Javascript
jQuery模拟下拉框选择对应菜单的内容
2017/03/07 Javascript
使用vue实现grid-layout功能实例代码
2018/01/05 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
Python_LDA实现方法详解
2017/10/25 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
Python八皇后问题解答过程详解
2019/07/29 Python
python面向对象 反射原理解析
2019/08/12 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
2019/09/16 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
大学新生军训个人的自我评价
2013/10/03 职场文书
资产经营总监岗位职责
2013/12/04 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
寒假实习自荐信
2014/01/26 职场文书
企业标语大全
2014/07/01 职场文书
给朋友的道歉短信
2015/05/12 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
情况说明书怎么写
2015/10/08 职场文书
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
2021/10/16 Python
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers