CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  XML/SOAP

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

楼主boyu(笨鱼)2002-05-17 09:57:37 在 Web 开发 / XML/SOAP 提问

我想用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

相关问题

  • 如何将gb2312编码的汉字转换为相应的gb13000(unicode)编码的汉字存储到xml文件中(使用utf-8字符集)?
  • XML 编码问题
  • xml编码问题!
  • 困扰程序员一生的问题之三(XML存储跟数据库存储)
  • 求base64编码解码源程序
  • 求一赫夫曼编码器程序!
  • nvarchar(10)在表中存储时,存储的是Unicode编码值、还是utf-8编码值?
  • xml的编码问题
  • XML的编码问题
  • 关于在存储过程中出现的编码问题:

关键词

  • 代码
  • 文件
  • xml
  • server
  • objxml
  • objentry
  • 换行
  • objname
  • createnode
  • dim

得分解答快速导航

  • 帖主:boyu
  • net_lover
  • gsyn77_csdn
  • saucer
  • IsMe

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo