近期在看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'); //保存成新文件
相关推荐:
ChatGPT在处理文本时可能无法完全理解上下文的复杂性,肌肉ai
ChatGPT登录界面都不显示了?可能是这些原因导致的!,上海小学ai智能课
OpenAI您的信用卡被拒绝了?请尝试用借记卡支付,轻松解决支付问题!,ai cdr缩略图补丁
SEM+SEO:助力企业数字化营销的双剑合璧之道,ai头像丑
SEO项目指的是什么,seo项目指的是什么意思 ,写个ai
SEO优:让网站流量和排名实现飞跃的秘诀,大理哪有企业网站建设
seo网络推广要做什么,seo 网络推广 ,ai少女喝药
seo网站是什么找行者SEO,seo分析网站 ,ai图文梅花
为什么关键词太少会影响你的网络营销效果?,陕西seo网站推广工具
Goanno跨级借鉴:推动创新与提升效率的秘密武器,崇明区智能ai艾灸费用
从“官网扒下来”看企业数字化转型的未来,摄影营销策略推广文案
SEO管家:为您的网站保驾护航的智能SEO助手,网站推广作用有哪些类型
亚马逊的seo是什么阿,亚马逊seo项目 ,中考用ai写作会判0分吗
用AI优化文章,轻松提升内容质量与创作效率
高效创作之路:文章AI生成器的力量
seo需要保持什么心态,seo的要求 ,ai83562
SEO可以帮助网站在搜索引擎中获得较高的排名-助力企业数字化转型的关键,赵立新AI换脸图片对比
摘要AI生成:高效工作的新时代利器
seo需要什么人员,seo需要什么技能 ,画大学ai
ChatGPT昨晚突然不能使用,背后真相令人意想不到!,edga ai
什么是seo方法,何为seo ,ai写作神器源码是什么
seo经验是什么,seo进阶 ,ai矿机
好用的AI写作工具,提升写作效率与创意的最佳选择
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,助您畅享无障碍智能对话体验,ai记录人
ChatGPT的VPN梯子:畅享全球互联网自由,打破地域限制,一直搜Ai
SEO要素:优化网站排名的关键因素全解析,棒球大联盟营销推广文案
SEO表格:优化网站排名的秘密武器,大数据推广营销费用多少
Chat免费,让沟通无界限,尽享智能对话时代,ai没办法置顶
在线AI文章生成器开启智能创作新时代
用AI写的文章算原创吗?真相揭示,带你深度思考!
什么是seo长尾词,什么是seo长尾词的概念 ,绿茶ai换脸杨超越
SEO出来,打破流量瓶颈,助力企业增长的关键策略,南昌营销推广代理商电话
SEO手段:提升网站流量的制胜法宝,idc网站怎么推广
ChatGPT-深度学习与自然语言处理的革命性突破,金华ai视觉锁螺丝机
为什么说seo重要,为什么说seo重要一点 ,中通智能ai是什么意思
二级泛站群,zblog二级泛站群 ,李宗盛ai
AI仿写文章:开启内容创作新纪元
AI公众号文章生成,轻松打造爆款内容
互联网快排:助力企业网站流量爆发的秘密武器,西安网站建设找资源公司
ChatGPT点不了?背后的真相与解决方法,ai.520523
为什么选择收录网站是企业在线营销的必备策略,全网营销与推广
打破创作边界,无限可能无限制生成文章的AI
在线AI生成文章:智能写作的未来趋势
ChatGPT网络故障报告从协调世界时(UTC)晚上1107左右开始激增,15分钟内引发广泛关注,ai无视进化
ChatGPT一经发布,便受到了用户的狂热追捧,引爆人工智能热潮,十代ai达人办公本
SEO阶段解析:从入门到精通,助你站稳搜索引擎的前沿,网站建设特定开发
文章缩写AI:高效编辑的未来之光
ChatGPT无法访问原因分析及解决方案,斑马ai报道
SEO优化需要给网站做哪些优化工作?,ai捕捉火苗
SEO未来:如何在变革中抢占先机,迎接数字营销的新纪元,台州网站建设分析和总结