DOM创建、修改、删除XML

和js生成html类似:

生成这样xml

DOM创建、修改、删除XML_第1张图片



主要步骤:



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进行修改:

<?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_第2张图片

你可能感兴趣的:(DOM创建、修改、删除XML)