asp删除和修改xml的节点

afantict 2009-06-10 08:34:44
<?xml version="1.0" encoding="UTF-8"?>
<message>
<contant>
<kategori>aa</kategori>
<msgid>bb</msgid>
<title>cc</title>
<msgurl>../info/2009/[TT]090325_3.html</msgurl>
<createdate>2009/03/25 15:16:46</createdate>
</contant>
<contant>
<kategori>aaa</kategori>
<msgid>bbb</msgid>
<title>ccc</title>
<msgurl>../info/2008/[TT]090325_3.html</msgurl>
<createdate>2008/03/25 15:16:46</createdate>
</contant>
</message>


我想通过msg检索到节点,然后对节点进行修改和删除,代码应该怎么写?
我想要完整的代码,如果厉害的话,加上遍历所有的节点就更好了,如果再厉害的话,加上添加节点的。


...全文
52 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
afantict 2009-06-10
  • 打赏
  • 举报
回复
up
afantict 2009-06-10
  • 打赏
  • 举报
回复
不好意思,我没看明白
我现在的xml文件如下
<?xml version="1.0" encoding="UTF-8"?>
<message>
<contant>
<kategori>aa </kategori>
<msgid>bb </msgid>
<title>cc </title>
<msgurl>../info/2009/[TT]090325_3.html </msgurl>
<createdate>2009/03/25 15:16:46 </createdate>
</contant>
<contant>
<kategori>aaa </kategori>
<msgid>bbb </msgid>
<title>ccc </title>
<msgurl>../info/2008/[TT]090325_3.html </msgurl>
<createdate>2008/03/25 15:16:46 </createdate>
</contant>
</message>


msgid是唯一的,假如我传入bb,那么就把
<contant>
<kategori>aa </kategori>
<msgid>bb </msgid>
<title>cc </title>
<msgurl>../info/2009/[TT]090325_3.html </msgurl>
<createdate>2009/03/25 15:16:46 </createdate>
</contant>
给删掉。
如果我传入bbb,那么就把
<contant>
<kategori>aaa </kategori>
<msgid>bbb </msgid>
<title>ccc </title>
<msgurl>../info/2008/[TT]090325_3.html </msgurl>
<createdate>2008/03/25 15:16:46 </createdate>
</contant>
给删掉。
这个删除的方法应该怎么写?

如果我要update的话,我要根据msgid修改节点的话,
比如我要把msgid=bbb的下面的节点
<contant>
<kategori>aaa </kategori>
<msgid>bbb </msgid>
<title>ccc </title>
<msgurl>../info/2008/[TT]090325_3.html </msgurl>
<createdate>2008/03/25 15:16:46 </createdate>
</contant>
修改成
<contant>
<kategori>aaaa </kategori>
<msgid>bbb </msgid>
<title>cccc </title>
<msgurl>../info/2010/[TT]090325_3.html </msgurl>
<createdate>2010/03/25 15:16:46 </createdate>
</contant>
应该怎么写?
afantict 2009-06-10
  • 打赏
  • 举报
回复
我试一下啊
没问题的话马上就结贴
itport 2009-06-10
  • 打赏
  • 举报
回复
删除XML节点例子:
http://www.aspprogram.cn/detail.asp?id=157这个页面用来显示xml文件中的所有节点,在每个节点旁边有删除和编辑两个连接,其中删除的代码是:
<%
id=request("id")
if IsNumeric(id)=false or isNull(id) then
response.write ("参数不正确,请返回!")
response.end
end if
strSourceFile = Server.MapPath("./") & "\test.xml"
'获取XML文件的路径这里根据你的虚拟目录不同而不同
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
'创建XML对像
objXML.load(strSourceFile)
'把XML文件读入内存中
Set objRootlist = objXML.documentElement.selectSingleNode("root")
set rootOldNode=objRootlist.childNodes.item(id)
objRootlist.RemoveChild rootOldNode
'删除节点
objXML.save(strSourceFile)
'存储test.xml文件(因为不存储test.xml只在内存中更新了)
set objXML=Nothing
set objXML2=Nothing
Response.Redirect("index.asp")
response.end
%>
itport 2009-06-10
  • 打赏
  • 举报
回复
修改XML节点例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> 修改xml内容 </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<!--#include file="top.asp"-->
<%
id=request("id")
if IsNumeric(id)=false or isNull(id) then
response.write ("参数不正确,请返回!")
response.end
end if
addok=request("addok")
If addok="" Or IsNull(addok) then
strSourceFile = Server.MapPath("./") & "\test.xml"
'获取XML文件的路径这里根据你的虚拟目录不同而不同
Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
'以自由线程创建一个XML对像
objXML.load(strSourceFile)'把XML文件读入内存
Set objRootsite = objXML.documentElement.selectSingleNode("root")
id=objRootsite.childNodes.item(id).childNodes.item(0).text
site=objRootsite.childNodes.item(id).childNodes.item(1).text
url=objRootsite.childNodes.item(id).childNodes.item(2).text
%>
<form name="form1" method="post" action="?addok=edit&id=<%=id%>">
网站名:<input type="text" name="site" value="<%=site%>" size="30">

网 址:<input type="text" name="url" value="<%=url%>" size="40">

<input type="submit" value="修改"> <input type="reset" value="重置">
</form>
<%
End If
If addok="edit" Then
site=request("site")
url=request("url")
strSourceFile = Server.MapPath("./") & "\test.xml"
'获取XML文件的路径这里根据你的虚拟目录不同而不同
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
'创建XML对像
objXML.load(strSourceFile)
'把XML文件读入内存中
Set objRootlist = objXML.documentElement.selectSingleNode("root")
set rootOldNode=objRootlist.childNodes.item(id)
brstr=chr(13)&chr(10)&chr(9)
XMLnode=brstr&"<list>"&vbnewline & _
"<id>"&id&"</id>"&vbnewline & _
"<name>"&site&"</name>"&vbnewline & _
"<url>"&url&"</url>"&vbnewline & _
"<time>"&Replace(Replace(Now(),"上午 ",""),"下午 ","")&"</time>"&vbnewline & _
"</list>"&vbnewline&vbnewline
'根据得到的数据建立XML片段
set objXML2=Server.CreateObject("Microsoft.XMLDOM")
'建立一个新XML对像
objXML2.loadXML(XMLnode)
'把XML版片段读入内存中
set rootNewNode=objXML2.documentElement
'获得objXML2的根节点
objRootlist.ReplaceChild rootNewNode,rootOldNode
'修改test.xml
objXML.save(strSourceFile)
'存储test.xml文件(因为不存储test.xml只在内存中更新了)
set objXML=nothing
set objXML2=nothing
Response.Redirect("index.asp")
response.end

End if
%>
</BODY>
</HTML>
lihan6415151528 2009-06-10
  • 打赏
  • 举报
回复
用dom吧!我资源里面有java操作的完整例子,可以去下载

所有语言对于dom都一样的
三楼の郎 2009-06-10
  • 打赏
  • 举报
回复
DOM对象,Google一下一大堆

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧