用XML存储的数据,用程序“换行”后无法显示中文???(XML换行&编码)

笨魚 2002-05-17 09:57:37
我想用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"?>了!

谁能提供一段既能"换行又能以中文显示"的代码? 我先在这里谢过各位啦!
...全文
190 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gsyn77_csdn 2002-05-19
  • 打赏
  • 举报
回复
在你的xml文件中换不换行有什么区别么?
saucer 2002-05-19
  • 打赏
  • 举报
回复
这问题以前讨论过,用MSXML4里的MXXMLWriter40 ,或用XSLT来做

其实XML文件大部份的时间是给软件读的,你管它换行不换行呢
IsMe 2002-05-19
  • 打赏
  • 举报
回复
如楼上所述,既然使用浏览器显示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"))


孟子E章 2002-05-17
  • 打赏
  • 举报
回复
vbs生成xml文件时,在每个节点后加入:& chr(13)

"<性别>" & Request.Form("Sex") & "</性别>" & chr(13)
笨魚 2002-05-17
  • 打赏
  • 举报
回复
还是不太懂你的意思,我把代码贴出来,你帮看看

'向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")

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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