手机
当前位置:查字典教程网 >编程开发 >php教程 >自定义php类(查找/修改)xml文档
自定义php类(查找/修改)xml文档
摘要:近期在看PHP的教学视频,其中讲到了PHP操作xml文档,学了点儿DOMDocument类。自己查手册又全英文,看不大懂。但还是自己写了个类...

近期在看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类(查找/修改)xml文档】相关文章:

十天学会php(2)

PHP网站提速三大“软”招

php判断文本文档字符编码

通过对服务器端特性的配置加强php的安全

php快速查找数据库中恶意代码的方法

PHP中实现图片的锐化

php数组随机排序实现方法

php判断是android还是ios还是wp的访问网站

PHP安装memcached扩展笔记

一个用于MySQL的PHP XML类

精品推荐
分类导航