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的内置函数,通过DES算法对数据加密和解密
Jun 21 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
成为好程序员必须避免的5个坏习惯
Jul 04 PHP
ThinkPHP文件缓存类代码分享
Apr 22 PHP
Zend Framework教程之视图组件Zend_View用法详解
Mar 05 PHP
php中分页及SqlHelper类用法实例
Jan 12 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
Ubuntu上安装yaf扩展的方法
Jan 29 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
PHP 裁剪图片
Mar 09 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
Protoss建筑一览
2020/03/14 星际争霸
适用于php-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
javascript检测浏览器的缩放状态实现代码
2014/09/28 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
[58:23]LGD vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
利用python程序帮大家清理windows垃圾
2017/01/15 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
python小白切忌乱用表达式
2020/05/29 Python
详解python中的异常和文件读写
2021/01/03 Python
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
搞笑获奖感言
2014/01/30 职场文书
安全标准化实施方案
2014/02/20 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
用Python实现Newton插值法
2021/04/17 Python
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
浅谈JavaScript作用域
2021/12/06 Javascript