XML

XML 知识量:7 - 28 - 99

6.5 DOM的文档操作><

动态创建XML文档- 6.5.1 -

可以使用DOM接口动态的创建XML文档,示例如下:

//定义变量XMLDoc
var XMLDoc;
//创建Document对象并赋予变量XMLDoc
XMLDoc = new ActiveXObject("Microsoft.XMLDOM");
//定义创建的文档内容
XMLDoc.load("<? xml version='1.0' encoding='UTF-8'?><员工列表></员工列表>");
//生成创建XML文档
XMLDoc.save(Server.MapPath("test.xml"));

执行后动态创建的XML文档如下:

<?xml version='1.0' encoding='UTF-8'?>
<员工列表>
</员工列表>

添加子元素- 6.5.2 -

可以通过DOM动态的添加XML文档的子元素,示例如下:

//定义变量XMLDoc
var XMLDoc;
//创建Document对象并赋予变量XMLDoc
XMLDoc = new ActiveXObject("Microsoft.XMLDOM");
//设置禁止异步加载,确保文档加载完毕后,控制权才会返回给调用进程
XMLDoc.async = false;
//加载XML文档test.xml
XMLDoc.load(Server.MapPath("test.xml"));

//定义变量peopleNode
var peopleNode;
//创建元素"员工",并将其赋予peopleNode
peopleNode=XMLDoc.createElement("员工");
//定义变量peopleName
var peopleName;
//创建元素"姓名",并将其赋予peopleName
peopleName=XMLDoc.createElement("姓名");
//定义变量textNode
var textNode;
//创建文本节点,并将其赋予textNode
textNode=XMLDoc.createTextNode("李明");

//将文本节点textNode作为元素值加入新建元素peopleName
peopleName.appendChild(textNode);
//将新建元素peopleName作为添加为新建元素peopleNode的子元素
peopleNode.appendChild(peopleName);
//定义变量root
var root;
//将XML文档根元素"员工列表"对应的节点赋予变量root
root = XMLDoc.documentElement;
//为元素"员工列表"添加子元素peopleNode
root.appendChild(peopleNode);
//生成XML文档
XMLDoc.save(Server.MapPath("test.xml"));

执行后创建的XML文档如下:

<?xml version='1.0' encoding='UTF-8'?>
<员工列表>
    <员工>
        <姓名>李明</姓名>
    </员工>
</员工列表>

修改元素内容- 6.5.3 -

可以通过DOM动态的修改XML文档的子元素,示例如下:

//定义变量XMLDoc
var XMLDoc;
//创建Document对象并赋予变量XMLDoc
XMLDoc = new ActiveXObject("Microsoft.XMLDOM");
//设置禁止异步加载,确保文档加载完毕后,控制权才会返回给调用进程
XMLDoc.async = false;
//加载XML文档test.xml
XMLDoc.load(Server.MapPath("test.xml"));

//定义变量peopleNode
var peopleNode;
//获取"员工"元素节点,并将其赋予peopleNode
peopleNode=XMLDoc.documentElement.firstChild;
//定义变量peopleName
var peopleName;
//获取"姓名"元素节点,并将其赋予peopleName
peopleName=peopleNode.firstChild;
//修改"姓名"元素节点的Text属性
peopleName.Text="王刚"
//保存XML文档
XMLDoc.save(Server.MapPath("test.xml"));

执行后创建的XML文档如下:

<?xml version='1.0' encoding='UTF-8'?>
<员工列表>
    <员工>
        <姓名>王刚</姓名>
    </员工>
</员工列表>

删除子元素- 6.5.4 -

可以通过DOM动态的删除XML文档的子元素,示例如下:

//定义变量XMLDoc
var XMLDoc;
//创建Document对象并赋予变量XMLDoc
XMLDoc = new ActiveXObject("Microsoft.XMLDOM");
//设置禁止异步加载,确保文档加载完毕后,控制权才会返回给调用进程
XMLDoc.async = false;
//加载XML文档test.xml
XMLDoc.load(Server.MapPath("test.xml"));

//定义变量peopleNode
var peopleNode;
//获取"员工"元素节点,并将其赋予peopleNode
peopleNode=XMLDoc.documentElement.firstChild;
//定义变量peopleName
var peopleName;
//获取"姓名"元素节点,并将其赋予peopleName
peopleName=peopleNode.firstChild;
//删除"姓名"元素节点
peopleNode.removeChild(peopleName);
//保存XML文档
XMLDoc.save(Server.MapPath("test.xml"));

执行后创建的XML文档如下:

<?xml version='1.0' encoding='UTF-8'?>
<员工列表>
    <员工>
    </员工>
</员工列表>