首页 > 代码库 > DOM创建、修改、删除XML

DOM创建、修改、删除XML

和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 = http://www.mamicode.com/$dom->createCDATASection('天龙八部是部好书');>
生成节点:


为什么没有换行?再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进行修改:

<?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();
运行结果:



DOM创建、修改、删除XML