asp中使用DOM操作XML文件
今天碰到一个问题 , 是在原有的asp系统中导入传过来的xml数据文件。
当然我们首先想到的编程操作XML的技术就是DOM(document object model)。在各种编程语言中都有实现,asp当然也不例外。
为了实现这个效果,我翻出来很早的一个Demo代码。
是在讲授xml课程的时候写的,一个仅仅是在用asp代码操作xml的程序,今天也发到网上供大家日后参考。
首先来看一下我们要操作的XML文件的格式(当然大家一看就知道这个是一个用xml到数据存储载体的简洁的留言板):
<?xml version="1.0" encoding="GB2312" ?>
<msgList>
<msg Id="{FC71844D-BACD-4965-A6E2-07E09400CDE2}">
<name>小科</name>
<content>hello,我来了,给你们说个悄悄话!</content>
<time>2006-3-1 23:09:33</time>
</msg>
<msg Id="{388F64C7-C249-4C56-B6D4-EA7A6EA65422}">
<name>小丽</name>
<content>说撒,怎么还不说呢。</content>
<time>2006-3-1 23:09:42</time>
</msg>
</msgList>
向此XML文件增加节点的核心代码:
set xmldoc = server.CreateObject("Microsoft.XMLDOM")
xmldoc.Load(server.MapPath("db.xml"))
if xmldoc.parseError.ErrorCode <> 0 then
response.Write("<script>alert('System Err!');history.go(-1);</script>")
response.End()
end if
set msgNode = xmldoc.CreateElement("msg")
set nameNode = xmldoc.CreateElement("name")
nameNode.text = tbName
set contentNode = xmldoc.CreateElement("content")
contentNode.text = tbContent
set timeNode = xmldoc.CreateElement("time")
timeNode.text = now
msgNode.appendChild(nameNode)
msgNode.appendChild(contentNode)
msgNode.appendChild(timeNode)
set att = xmldoc.CreateAttribute("Id")
'下面的代码是在asp中生成一个 GUID 的字符串
Set objTypeLib = CreateObject("Scriptlet.TypeLib")
att.text = objTypeLib.Guid
msgNode.attributes.SetNamedItem(att)
xmldoc.documentElement.appendChild(msgNode)
xmldoc.save(server.MapPath("db.xml"))
set xmldoc = nothing
当然还有显示, 删除的代码,都copy上来过于麻烦, 还是将代码打包传上来大家down。