用XML存储的数据,用程序“换行”后无法显示中文???(XML换行&编码)
我想用ASP+XML来做个留言板,把数据存储在XML文件中,形式如下:
<留言板>
<姓名>AAA</姓名>
<性别>F</性别>
</留言板>
没有换行前是这样的:
<留言板>
<姓名>AAA</姓名>
<性别>F</性别>
</留言板><留言板><姓名>AAA</姓名><性别>F</性别></留言板>
用这段代码进行换行
theStr=objXML.xml
theAry=split(theStr,"><")
theStr=join(theAry,"> "&chr(13)&"<")
objXML.loadxml(theStr)
objXML.save(server.MapPath("guestbook.xml"))
换行后,行是可以换了,但中文不能显示了,都是乱玛.
而且我发现原来XML文件的顶部是<?xml version="1.0" encoding="gb2312"?>
使用换行代码后就变成 <?xml version="1.0"?>了!
谁能提供一段既能"换行又能以中文显示"的代码? 我先在这里谢过各位啦!
问题点数:50、回复次数:5Top
1 楼net_lover(【孟子E章】)回复于 2002-05-17 10:55:22 得分 10
vbs生成xml文件时,在每个节点后加入:& chr(13)
"<性别>" & Request.Form("Sex") & "</性别>" & chr(13)
Top
2 楼boyu(笨鱼)回复于 2002-05-17 13:59:20 得分 0
还是不太懂你的意思,我把代码贴出来,你帮看看
'向XML文件添加留言记录的函数addEntry()
Function addEntry()
'定义局部变量
Dim strName
Dim strEmail
Dim strURL
Dim strMessage
'取得留言表单的输入内容
strName = Request.Form("姓名")
strEmail = Request.Form("电子邮件")
strURL = Request.Form("网址")
strMessage = Request.Form("留言")
Dim objXML
Dim objEntry
Dim objName
Dim objEmail
Dim objURL
Dim objMessage
'向XML文件添加留言内容
' Set objXML = server.createObject("Msxml.DOMDocument")
Set objXML = server.createObject("Microsoft.XMLDOM")
objXML.async = false
objXML.load(server.MapPath("guestbook.xml"))
Set objEntry = objXML.createNode("element", "留言记录", "")
objXML.documentElement.appendChild(objEntry)
Set objName = objXML.createNode("element", "留言者姓名", "")
objEntry.appendChild(objName)
objName.text = strName
Set objEmail = objXML.createNode("element", "电子邮件", "")
objEntry.appendChild(objEmail)
objEmail.text = strEmail
Set objURL = objXML.createNode("element", "网址", "")
objEntry.appendChild(objURL)
objURL.text = strURL
Set objMessage = objXML.createNode("element", "留言内容", "")
objEntry.appendChild(objMessage)
objMessage.text = strMessage
'theStr=objXML.xml
'theAry=split(theStr,"><")
'theStr=join(theAry,"> "&chr(13)&"<")
'objXML.loadxml(theStr)
objXML.save(server.MapPath("guestbook.xml"))
Response.Redirect("guestbook.asp")Top
3 楼gsyn77_csdn(Cerberos)回复于 2002-05-19 00:08:09 得分 10
在你的xml文件中换不换行有什么区别么?Top
4 楼saucer(思归)回复于 2002-05-19 09:55:19 得分 10
这问题以前讨论过,用MSXML4里的MXXMLWriter40 ,或用XSLT来做
其实XML文件大部份的时间是给软件读的,你管它换行不换行呢Top
5 楼IsMe(海底捞针)回复于 2002-05-19 15:00:28 得分 20
如楼上所述,既然使用浏览器显示XML,没必要换行
也可以这样:
将 objXML.save(server.MapPath("guestbook.xml")) 改为
theStr=replace(objXML.xml,"<?xml version=""1.0""?>","<?xml version=""1.0"" encoding=""gb2312""?>")
objXml.loadxml theStr
objXML.save(server.MapPath("guestbook.xml"))
Top




