自定义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 相关文章推荐
基于mysql的bbs设计(四)
Oct 09 PHP
PHP中的CMS的涵义
Mar 11 PHP
用PHP实现多服务器共享SESSION数据的方法
Mar 16 PHP
PHP curl_setopt()函数实例代码与参数分析
Jun 02 PHP
PHP三元运算的2种写法代码实例
May 12 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 PHP
Yii2实现UploadedFile上传文件示例
Feb 15 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
Laravel中的Blade模板引擎示例详解
Oct 10 PHP
Yii Framework框架开发微信公众平台示例
Apr 26 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
Jun 03 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
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
jQuery的强大选择器小结
2009/12/27 Javascript
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
移动端图片上传旋转、压缩问题的方法
2018/10/16 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
Python通过Pillow实现图片对比
2020/04/29 Python
python同时遍历两个list用法说明
2020/05/02 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
毕业生在校学习的自我评价分享
2013/10/08 职场文书
实习心得体会
2014/01/02 职场文书
运动会广播稿60字
2014/01/15 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
给校长的建议书200字
2014/05/16 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
整改报告格式
2014/11/06 职场文书
2015年小学语文教学工作总结
2015/05/25 职场文书
遗愿清单观后感
2015/06/09 职场文书