XMLDOM对象操作实例

本例主要利用XMLDOM对象的一些方法和属性进行创建、查找、更新、删除节点及属性,也借以来说明在ASP中如何利用XMLDOM对象对XML文件进行一些简单的操作,主要代码如下:

创建

<%
'//创建DOM对象
Dim objDom
Set objDom = Server.CreateObject("MicroSoft.XMLDom")

'//创建根节点
Dim rootNode
Set rootNode = objDom.CreateElement("people")
objDom.appendChild rootNode

'//创建第一个子节点
Dim nodeChild,nodeChild2,nodeChild3
Set nodeChild = objDom.CreateElement("person")
Set nodeChild2 = objDom.CreateElement("name")
Set nodeChild3 = objDom.CreateElement("age")
nodeChild2.Text = "张三"
nodeChild3.Text = "25"
rootNode.appendChild nodeChild
nodeChild.appendChild nodeChild2
nodeChild.appendChild nodeChild3

'//给节点添加属性
Dim NewAttribute
Set NewAttribute = objDom.CreateNode("attribute","sex","")
NewAttribute.Text = "boy"
nodeChild2.SetAttributeNode NewAttribute

'//创建第二个子节点
Dim nodeChild4,nodeChild5,nodeChild6
Set nodeChild4 = objDom.CreateElement("person")
Set nodeChild5 = objDom.CreateElement("name")
Set nodeChild6 = objDom.CreateElement("age")
nodeChild5.Text = "李四"
nodeChild6.Text = "26"
rootNode.appendChild nodeChild4
nodeChild4.appendChild nodeChild5
nodeChild4.appendChild nodeChild6

'//保存为XML文件
objDom.save(Server.MapPath("test.xml"))
%>

查找

<%
'//创建DOM对象
Dim objDom
Set objDom = Server.CreateObject("MicroSoft.XMLDom")

'//加载XML文件
objDom.async = false '不允许异步下载
objDom.load(Server.MapPath("test.xml"))

'//创建根节点对象
Dim objRoot
Set objRoot = objDom.documentElement

'//查找指定节点并获取节点名称、节点值及指定属性值
Dim objFind,nodeName,nodeValue,nodeAttribute
Set objFind = objRoot.SelectSingleNode("//people/person/name")
nodeName = objFind.nodename
nodeValue = objFind.text '结合更新体会text属性的可读可写
nodeAttribute = objFind.GetAttributeNode("sex").NodeValue
Response.write "1.查找指定节点并获取节点名称、节点值及指定属性值<br/>"
Response.write  nodeName & "<br/>"
Response.write  nodeValue & "<br/>"
Response.write  nodeAttribute & "<br/><br/>"

'//取出一个节点的子节点集合
Dim objSubNodes
Set objSubNodes = objRoot.SelectSingleNode("//people/person").ChildNodes
Response.write "2.取出一个节点的子节点集合<br/>"
'方法1
For each element in objSubNodes
    Response.write element.nodename & "=" & element.text & "<br/>"
Next
Response.write  "<br/>"
'方法2
'For i = 0 to objSubNodes.length-1
'    Response.write objSubNodes.Item(i).nodename
'    Response.write objSubNodes.Item(i).text
'Next

'//取出一个节点属性对象
Dim objAttr,attrName,attrValue
Set objAttr = objRoot.SelectSingleNode("//people/person/name").GetAttributeNode("sex")
attrName = objAttr.nodename
attrValue = objAttr.nodevalue
Response.write "3.取出一个节点属性对象<br/>"
Response.write attrName & "=" & attrValue & "<br/><br/>"

'//取出一个节点的属性集合
Dim objSubSttrs
Set objSubSttrs = objRoot.SelectSingleNode("//people/person/name").attributes
Response.write "4.取出一个节点的属性集合<br/>"
For each element in objSubSttrs
    Response.write element.nodename & "=" & element.nodevalue & "<br/>"
Next
%>

更新

<%
'//创建DOM对象
Dim objDom
Set objDom = Server.CreateObject("MicroSoft.XMLDom")

'//加载XML文件
objDom.async = false '不允许异步下载
objDom.load(Server.MapPath("test.xml"))

'//创建根节点对象
Dim objRoot
Set objRoot = objDom.documentElement

'//修改张三的姓名及性别
Dim objSub
Set objSub = objRoot.SelectSingleNode("//people").childNodes.item(0)
objSub.childNodes.item(0).text = "王五" '结合查询体会text属性的可读可写
objSub.childNodes.item(0).GetAttributeNode("sex").nodevalue = "girl"

'//给李四添加性别属性
Dim NewAttribute
Set NewAttribute = objDom.CreateNode("attribute","sex","")
NewAttribute.Text = "boy"
'不创建对象,直接添加属性
objRoot.SelectSingleNode("//people").childNodes.item(1).childNodes.item(0).SetAttributeNode NewAttribute

'//再增加一个子节点
Dim nodeChild,nodeChild2,nodeChild3
Set nodeChild = objDom.CreateElement("person")
Set nodeChild2 = objDom.CreateElement("name")
Set nodeChild3 = objDom.CreateElement("age")
nodeChild2.Text = "小邝"
nodeChild3.Text = "24"
objRoot.appendChild nodeChild
nodeChild.appendChild nodeChild2
nodeChild.appendChild nodeChild3

objDom.save(Server.MapPath("test.xml")) '更新后必须保存
%>

删除

<%
'//创建DOM对象
Dim objDom
Set objDom = Server.CreateObject("MicroSoft.XMLDom")

'//加载XML文件
objDom.async = false '不允许异步下载
objDom.load(Server.MapPath("test.xml"))

'//创建根节点对象
Dim objRoot
Set objRoot = objDom.documentElement

'//删除李四的年龄
Dim objSub,objSub2
Set objSub = objRoot.SelectSingleNode("//people").childNodes.item(1)
Set objSub2 = objSub.childNodes.item(1)
objSub.removeChild objSub2

objDom.save(Server.MapPath("test.xml")) '更新后必须保存
%>


上一篇: 网页一屏有多大?
下一篇: robots.txt文件
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 1 | 引用: 0 | 查看次数: 4899
发表评论
登录后再发表评论!