自定义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 相关文章推荐
配置支持SSI
Nov 25 PHP
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
Dec 13 PHP
加速XP搜索功能堪比vista
Mar 22 PHP
PHP中使用cURL实现Get和Post请求的方法
Mar 13 PHP
eAccelerator的安装与使用详解
Jun 13 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
PHP7新特性foreach 修改示例介绍
Aug 26 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
Apr 04 PHP
PHP高并发和大流量解决方案整理
Dec 24 PHP
laravel7学习之无限级分类的最新实现方法
Sep 30 PHP
PHP7变量处理机制修改
Mar 09 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
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
php 什么是PEAR?(第三篇)
2009/03/19 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
Javascript注入技巧
2007/06/22 Javascript
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
javascript 面向对象思想 附源码
2009/07/07 Javascript
js window.onload 加载多个函数的方法
2009/11/02 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
Vue.js学习教程之列表渲染详解
2017/05/17 Javascript
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
微信跳一跳游戏python脚本
2020/04/01 Python
Django框架多表查询实例分析
2018/07/04 Python
python的concat等多种用法详解
2018/11/28 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
应聘自荐书
2013/10/08 职场文书
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
大学生演讲稿
2014/04/25 职场文书
效能风暴心得体会
2014/09/04 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
Python OpenCV 图像平移的实现示例
2021/06/04 Python
基于CSS制作创意端午节专属加载特效
2022/06/01 HTML / CSS