蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年8月25日 8:28

[XML&ASP]如何用ASP修改XML中元素值?

要处理的XML文件内容:
[code]
<?xml version="1.0" encoding="utf-8" ?>
<basic>
        <name>abcdefg</name>
</basic>
[/code]
首先读取XML文件中节点的值给一个表单 如:
[code]
<%
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.Load(Server.MapPath("b.xml"))
strName = objXML.documentElement.firstChild.text
Set objXML = Nothing
%>
<form action="test.asp" method="post">
        <input type="text" size="40" name="host" value="<%=strName%>">
        <input type="submit" value="--确定--">
</form>
[/code]

问题:
1、当提交表单后如何修改XML文件中相对应的元素值
2、当用这条语句读元素值时出现(错误的参数个数或无效的参数属性值)的错误,如何解决
     strName = objXML.getElementsByTagName("name")

UPPPPPPPPPPPP

弄了个笨方法,先删除XML中的元素再添加一个新的,这样很麻烦,有没有直接修改指定元素的方法吗?
[code]
<%
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.async = False
objXML.Load(Server.MapPath("basicinfo.xml"))
Set objHost = objXML.documentElement.SelectSingleNode("basic_host")
strHost = objHost.text

str = Request("host")
Set objXD = objXML.documentElement.SelectSingleNode("basic_host")
objXML.documentElement.RemoveChild(objXD)

Set objXA = objXML.documentElement.AppendChild(objXML.createElement("basic_host"))
objXA.text = str

objXML.Save Server.MapPath("basicinfo.xml")
Set objXML = Nothing
%>
<form action="test.asp" method="post">
        BLOG地址:<input type="text" size="40" name="host" value="<%=strHost%>">
        <input type="submit" value="--确定--">
</form>
[/code]

UPPPPPPPPPPPP

有没有办法取到你要修改的那个节点所处的位置?
如果可以,直接赋新值就行了。

[code]
<%
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.async = False
objXML.Load(Server.MapPath("basicinfo.xml"))
Set objHost = objXML.documentElement.SelectSingleNode("basic_host")
strHost = objHost.text

str = Request("host")
Set objXD = objXML.documentElement.SelectSingleNode("basic_host")

'这里改成这样
objXD.text = "xxxxx"

objXML.Save Server.MapPath("basicinfo.xml")
Set objXML = Nothing
%>
<form action="test.asp" method="post">
        BLOG地址:<input type="text" size="40" name="host" value="<%=strHost%>">
        <input type="submit" value="--确定--">
</form>
[/code]

是这样啊,谢谢海格雷尔了,昨天弄的头都大了也没出来,只好用笨方法3楼
看起来还是要好好学学XMLDOM
http://www.china-pub.com/computers/common/info.asp?id=14777
这本书讲DOM的,有人看过了怎么样?




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com