DOM方式操作XML

来源:互联网 发布:仓库拣货路线优化 编辑:程序博客网 时间:2024/05/22 07:50

好几天没有写文章了,最近一直在考驾照,还差一个科目四了,所以最近文章更新比较少。趁着放假赶紧更新几篇。今天分享一篇使用DOM 方式操作XML。


1、生成XML:

<?php/** * DOM创建XML文件 * @author webbc *//** * 创建示例 * <?xml version="1.0" encoding="utf-8"?> * <appstore> *    <goods goods_id="g001"> *      <name>天龙八部</name> *      <intro><![DATA[这本书真好]]></intro> *    </goods> * </appstore> *///1、创建dom文档对象$dom = new DOMDocument('1.0','utf-8');//2、创建天龙八部文本对象$tl = $dom->createTextNode('天龙八部');//3、创建name节点对象$name = $dom->createElement('name');//4、把天龙文本对象添加到name节点对象中$name->appendChild($tl);//5、创建CDATA节点对象$cdata = $dom->createCDATASection('这本书真好');//6、创建intro节点对象$intro = $dom->createElement('intro');//7、把cdata对象添加到intro节点中$intro->appendChild($cdata);// 8、创建goods节点对象$goods = $dom->createElement('goods');//9、把name和Intro两个节点对象分别添加到goods节点对象中$goods->appendChild($name);$goods->appendChild($intro);//10、创建goods_id属性节点对象$goods_id = $dom->createAttribute('goods_id');$goods_id->value = 'g001';//11、把属性节点对象添加到goods节点对象中$goods->appendChild($goods_id);//12、创建appstore节点对象$appstore = $dom->createElement('appstore');//13、把goods对象添加到appstore对象中$appstore->appendChild($goods);//14、把appstore对象最后添加到文档对象中$dom->appendChild($appstore);//输出到浏览器header("Content-type:text/xml;charset:utf-8");echo $dom->saveXML();//保存成文件//$dom->save('./05.xml');?>

结果:
这里写图片描述

2、解析XML

这里写图片描述

题:找出“天龙八部”和“倚天屠龙剑”文本内容

<meta charset="utf-8"/><?php/** * dom解析xml * @author webbc *///1、创建dom文档对象$dom = new DOMDocument('1.0','utf-8');//2、将xml内容加载到该对象中$dom->load('./04.xml');//3、找出title节点,得到节点列表对象$titleList = $dom->getElementsByTagName("title");//4、然后根据节点列表对象的item方法来获取节点对象$title0 = $titleList->item(0);//5、找出该title节点的子节点,得到节点列表对象$childList = $title0->childNodes;//6、然后根据节点列表对象的item方法来获取节点对象,这里获取的是文本节点对象echo $childList->item(0)->wholeText;//找出“天龙八部”echo "<br/>";echo $dom->getElementsByTagName("title")->item(1)->childNodes->item(0)->wholeText;//找出“倚天屠龙剑”echo "<br/>";print_r($dom->getElementsByTagName("title")->item(1)->nodeValue);//找出“倚天屠龙剑”?>

结果:
这里写图片描述

3、XML节点的删与改

<?php/** * XML节点的删与改 * @author webbc *///删除“天龙八部”节点,只能父节点删除自身的子节点$dom = new DomDocument('1.0','utf-8');$dom->load('./04.xml');$bookList = $dom->getElementsByTagName('book');$bookList->item(0)->parentNode->removeChild($bookList->item(0));header('Content-type:text/xml;charset=utf-8');// echo $dom->saveXML();//修改节点,只能采取替换节点的方式来修改节点,只能父节点来替换自身的子节点,把“倚天屠龙记”文本节点替换成“鹿鼎记”文本节点$title = $dom->getElementsByTagName('title')->item(0);$tl = $dom->createTextNode('鹿鼎记');$title->replaceChild($tl,$title->firstChild);header('Content-type:text/xml;charset=utf-8');echo $dom->saveXML();?>

这里写图片描述

0 0
原创粉丝点击