自定义php类(查找/修改)xml文档


Posted in PHP onMarch 26, 2013

近期在看PHP的教学视频,其中讲到了 PHP 操作 xml 文档,学了点儿 DOMDocument 类。自己查手册又全英文,看不大懂。但还是自己写了个类,实现了查找 xml 节点,并修改节点值。背景解说完毕,且看代码如下:

/* 
<?xml version="1.0" encoding="UTF-8"?> 
<班级> 
<学生 number="101"> 
<名字>孙悟空</名字> 
<名字>孙行者</名字> 
<年龄>猴精猴精</年龄> 
<介绍></介绍> 
</学生> 
<学生 number="102"> 
<名字>白骨精</名字> 
<年龄>140</年龄> 
<介绍>幻化万千</介绍> 
</学生> 
<学生 number="103"> 
<名字>猪八戒</名字> 
<名字>猪无能</名字> 
<年龄>200</年龄> 
<介绍>能吃会睡</介绍> 
</学生> 
</班级> 
*/ 
class xmlDom{ 
public $version; 
public $encoding; 
private $xml; 
private $items; 
private $seachNode = ''; 
private $seachItem = ''; 
private $seachValue = ''; 
public $writeBytes = 0; 
function __construct($xmlFile ='', $version ='1.0', $encoding = 'UTF-8'){ 
$this->version = $version; 
$this->encoding = $encoding; 
$this->xml = new DOMDocument($version, $encoding); 
if($xmlFile)$this->xml->load($xmlFile); 
} 
function getRootEle($rootTag){ 
$this->xmlRoot = $this->xml->getElementsByTagName($rootTag)->item(0); 
} 
function getSeachItem($itemsTag, $seachNode, $seachValue){ 
$this->items = $this->xml->getElementsByTagName($itemsTag); 
$this->items->length; 
for($i=0; $i<$this->items->length; $i++){ 
$item = $this->items->item($i);//元素 
$node = $item->getElementsByTagName($seachNode);//节点 
for($j = 0; $j< $node->length; $j++){ 
$subNode = $node->item($j); 
if($seachValue == $subNode->nodeValue){ 
$this->seachNode = $subNode; 
$this->seachItem = $item; 
$this->seachValue = $subNode->nodeValue; 
break(2); 
} 
} 
} 
return ($this->seachNode) ? true : false; 
} 
function update($nodeValue, $nodeTag = '',$append = false, $index = 0){ 
if($append){ 
if($nodeTag) 
$this->seachItem->getElementsByTagName($nodeTag)->item($index)->nodeValue += $nodeValue; 
else 
$this->seachNode->nodeValue += $nodeValue; 
}else{ 
if($nodeTag) 
$this->seachItem->getElementsByTagName($nodeTag)->item($index)->nodeValue = $nodeValue; 
else 
$this->seachNode->nodeValue = $nodeValue; 
} 
} 
function save($filename){ 
$this->writeBytes = $this->xml->save($filename); 
return ($this->writeBytes) ? true : false; 
} 
} 
$test = new xmlDom('student.xml'); 
$test->getSeachItem('学生','年龄','103');//找到 年龄=103 的猪八戒 
$test->update('小猪猪', '名字', false, 1); //把猪八戒的第二个名字改成:小猪猪 
$test->save('new.xml'); //保存成新文件
PHP 相关文章推荐
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
php 什么是PEAR?(第三篇)
Mar 19 PHP
一个php导出oracle库的php代码
Apr 20 PHP
PHP XML操作类DOMDocument
Dec 16 PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 PHP
php实现快速排序法函数代码
Aug 27 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
Jun 13 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
详解Yii2 rules 的验证规则
Dec 02 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
php中DOMElement操作xml文档实例演示
Mar 26 #PHP
PHP 自定义错误处理函数trigger_error()
Mar 26 #PHP
PHP中图片等比缩放的实例
Mar 24 #PHP
比较简单的百度网盘文件直链PHP代码
Mar 24 #PHP
php实现单链表的实例代码
Mar 22 #PHP
php 判断数组是几维数组
Mar 20 #PHP
php页面消耗内存过大的处理办法
Mar 18 #PHP
You might like
PHP的历史和优缺点
2006/10/09 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
js调用flash的效果代码
2008/04/26 Javascript
js中生成map对象的方法
2014/01/09 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
python实现bucket排序算法实例分析
2015/05/04 Python
Python栈类实例分析
2015/06/15 Python
python GUI实例学习
2017/11/21 Python
Python编程中NotImplementedError的使用方法
2018/04/21 Python
Django重设Admin密码过程解析
2020/02/10 Python
Python 解析pymysql模块操作数据库的方法
2020/02/18 Python
python 检测图片是否有马赛克
2020/12/01 Python
今天学到的CSS最新技术(与图片背景相关)
2012/12/24 HTML / CSS
RentCars.com巴西:汽车租赁网站
2016/08/22 全球购物
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
Tretorn美国官网:瑞典外套和鞋类品牌,抵御风雨
2018/07/19 全球购物
PHP面试题及答案一
2012/06/18 面试题
2013英文求职信模板范文
2013/11/15 职场文书
法人委托书范本格式
2014/09/15 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
医德医风个人工作总结2014
2014/11/14 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
家长会感言
2015/08/01 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书