首页 > 编程 > PHP > 正文

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

2020-03-22 17:21:22
字体:
来源:转载
供稿:网友
近期在看PHP的教学视频,其中讲到了 PHP 操作 xml 文档,学了点儿 DOMDocument 类。自己查手册又全英文,看不大懂。但还是自己写了个类,实现了查找 xml 节点,并修改节点值。背景解说完毕,且看代码如下:
复制代码 代码如下:
/*
?xml version="1.0" encoding="UTF-8"?
班级
学生 number="101"
名字 孙悟空 /名字
名字 孙行者 /名字
年龄 猴精猴精 /年龄
介绍 /介绍
/学生
学生 number="102"
名字 白骨精 /名字
年龄 140 /年龄
介绍 幻化万千 /介绍
/学生
学生 number="103"
名字 猪八戒 /名字
名字 猪无能 /名字
年龄 200 /年龄
介绍 能吃会睡 /介绍
/学生
/班级
*/
html' target='_blank'>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教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表