和js生成html类似:
生成这样xml
主要步骤:
1:先创建"天龙八部"文本节点
2:再创建普通的name节点
3:再把天龙文本节点,加入到name节点中
4:创建cdata节点,
5:创建intro节点
6:再把cdata节点放入intro中
7:创建goods节点
8:把name,intro放入goods节点
9:创建属性节点goods_id
10:把属性节点放入goods节点
11:创建appstore节点
12:把goods放入appstore节点
13:把appsotore放入文档中
在上面的步骤中,提现出
创建普通节点
创建文本节点
创建CDATA节点
创建属性节点
增加子节点
<?php // 创建DOM文档对象 $dom = new DOMDocument('1.0','utf-8'); // 1:创建文本节点, $tl = $dom->createTextNode('天龙八部'); // 2:创建普通节点 $name = $dom->createElement('name'); // 3:把天龙加到name节点中, $name->appendChild($tl); // 4:创建CDATA $cdata = $dom->createCDATASection('天龙八部是部好书'); // 5:创建intro节点 $intro = $dom->createElement('intro'); // 6:把cdata加入intro $intro->appendChild($cdata); // 7: 创建goods $goods = $dom->createElement('goods'); // 8: 把name,intro放入goods下 $goods->appendChild($name); $goods->appendChild($intro); // 9:创建属性节点goods_id $attr = $dom->createAttribute('goods_id'); $attr->value = 'j001'; // 10: 把属性节点加入到goods下 $goods->appendChild($attr); // 11: 创建appstore $appstore = $dom->createElement('appstore'); // 12: 把goods加到appstore下 $appstore->appendChild($goods); // 13: 再把appstore加到文档下面 $dom->appendChild($appstore); // 最后,想输出也行,想保存也行 /* // 输出 header('content-type: text/xml'); //不加这句话当做普通html文件解析 echo $dom->savexml(); // 直接输出 */ echo $dom->save('03.xml')?'OK':'FAIL';
为什么没有换行?再xml里面都是节点,包括换行!
下面是修改和删除
原先的xml文件时这样
<?xml version="1.0" encoding="utf-8"?> <appstore><goods goods_id="j001"><name>天龙八部</name><intro><![CDATA[天龙八部是部好书]]></intro></goods><goods goods_id="j002"><name>七剑下天山</name><intro><![CDATA[下天书也挺好看]]></intro></goods></appstore>
<?php // 创建DOM对象 $dom = new DOMDocument('1.0','utf-8'); // 载入XML $dom->load('01.xml'); // 把天龙八部的商品删掉 // 查找goods节点,得到列表,从列表中选取天龙八部节点 $tl = $dom->getElementsByTagName('goods')->item(0); $tl->parentNode->removeChild($tl); // 删除结束已经搞定 /* header('content-type: text/xml;'); echo $dom->savexml(); */ // 修改节点,节点不能修改,只能替换. $name = $dom->getElementsByTagName('name')->item(0); $seven = $dom->createTextnode('七种武器'); $name->replaceChild($seven,$name->firstChild); header('content-type: text/xml;'); echo $dom->savexml();运行结果: