CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

XML求助...谢谢.(在线等)

楼主parol2910(four wheel drive)2004-11-03 19:23:00 在 .NET技术 / C# 提问

我现在要把数据存到XML中去.我已经把validateRequest="false"了. 系统将不自动检测.  
   
  我往XML里写数据的语句是这样的XmlElement   body=xd.CreateElement("body");  
    body.InnerText=article.Value.ToString();  
    xerecord.AppendChild(body);  
  比如我想往XML中写入这个<html></html>,存储完后在XML中是这样的&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;  
  它好像把'&'也给换成&amp;了.这样的话我用XSL把<html></html>显示出来时只能是&amp;lt;html&amp;gt;&amp;lt;/html&amp;gt;  了.  
  谁有办法解决呀.让存储进XML中的数据是&lt;html&gt;&lt;/html&gt;    
  这样就可是正常显示了呀.  
  谢谢.  
  在线等.  
  解决就散分...  
  问题点数:40、回复次数:24Top

1 楼zhwb36()回复于 2004-11-03 19:35:42 得分 0

就直接存这样的字符串“&lt;html&gt;&lt;/html&gt”会把&变为&amp;?Top

2 楼BearRui(孤熊 | 带你去看海!)回复于 2004-11-03 19:36:41 得分 20

try:  
   
  XmlCDataSection   cdata=xd.CreateCDataSection(article.Value.ToString());  
  XmlElement   body=xd.CreateElement("body");  
  body.AppendChild(cdata);  
  xerecord.AppendChild(body);  
  Top

3 楼earlsen(earlsen)回复于 2004-11-03 19:42:37 得分 0

public   class   Book  
  {  
        public   string   title;  
   
        static   void   Main()  
        {  
              Book   introToVCS   =   new   Book();  
              introToVCS.title   =   "Intro   to   Visual   CSharp";  
              System.Xml.Serialization.XmlSerializer   writer   =    
                    new   System.Xml.Serialization.XmlSerializer(introToVCS.GetType());  
              System.IO.StreamWriter   file   =  
                    new   System.IO.StreamWriter("c:\\IntroToVCS.xml");  
   
              writer.Serialize(file,   introToVCS);  
              file.Close();  
        }  
  }Top

4 楼parol2910(four wheel drive)回复于 2004-11-03 21:28:34 得分 0

还是没有解决.请大家再帮忙...Top

5 楼BearRui(孤熊 | 带你去看海!)回复于 2004-11-03 21:39:47 得分 0

我上面的代码不行吗,在CDATA节点中可以保存任何字符,不信可以用IE打开下面的XML看看  
   
  <?xml   version="1.0"?>  
  <root>  
      <body>  
          <![CDATA[asdfq<   &   html&amp;gt;&   ]]>  
      </body>  
  </root>Top

6 楼parol2910(four wheel drive)回复于 2004-11-03 21:42:31 得分 0

可是怎么加呢?Top

7 楼BearRui(孤熊 | 带你去看海!)回复于 2004-11-03 21:56:16 得分 0

XmlDocument   doc=new   XmlDocument();  
  doc.Load("xmlfile");  
   
  XmlCDataSection   cdata=doc.CreateCDataSection(article.Value.ToString());  
  XmlElement   body=doc.CreateElement("body");  
  body.AppendChild(cdata);  
  doc.AppendChild(body);  
   
  doc.Svae("xmlfile");  
  Top

8 楼parol2910(four wheel drive)回复于 2004-11-03 21:58:11 得分 0

名称“cdata”在类或命名空间“FriendsReunion.sendarticle”中不存在Top

9 楼BearRui(孤熊 | 带你去看海!)回复于 2004-11-03 22:03:22 得分 0

下面是MSDN中的代码,你看看  
  using   System;  
  using   System.IO;  
  using   System.Xml;  
   
  public   class   Sample  
  {  
      public   static   void   Main()  
      {  
          XmlDocument   doc   =   new   XmlDocument();  
          doc.LoadXml("<book   genre='novel'   ISBN='1-861001-57-5'>"   +  
                                  "<title>Pride   And   Prejudice</title>"   +  
                                  "</book>");  
   
          //Create   a   CData   section.  
          XmlCDataSection   CData;  
          CData   =   doc.CreateCDataSection("All   Jane   Austen   novels   25%   off   starting   3/23!");          
   
          //Add   the   new   node   to   the   document.  
          XmlElement   root   =   doc.DocumentElement;  
          root.AppendChild(CData);      
                   
          Console.WriteLine("Display   the   modified   XML...");                  
          doc.Save(Console.Out);  
      }  
  }  
  Top

10 楼parol2910(four wheel drive)回复于 2004-11-03 22:04:47 得分 0

<body><![CDATA[&lt;html&gt;&lt;/html&gt;&lt;&gt;]]></body>  
   
  5555  
  存进去的变成这样了.Top

11 楼BearRui(孤熊 | 带你去看海!)回复于 2004-11-03 22:11:55 得分 0

你本来不是要保存lt;html&gt;&lt;/html这些字符吗!!!Top

12 楼parol2910(four wheel drive)回复于 2004-11-04 12:14:27 得分 0

是呀.  
  可是现在lt;html&gt;&lt;/html  谢谢在了CDATA里边了,等用XSL转换出来的时候,它就变成了&lt;html&gt;&lt;/html&gt;&lt;&gt;   ....  
  郁闷...  
   
  大家再帮忙呀...Top

13 楼BearRui(孤熊 | 带你去看海!)回复于 2004-11-04 12:39:55 得分 0

那你直接保存<html></html>到CDATA节点就行啦,不要保存为&lt;html&gt;&lt;/html&gt;。  
   
  看看你的XSLTop

14 楼net_lover(【孟子E章】)回复于 2004-11-04 12:46:11 得分 20

<xsl:value-of   select="//body"   disable-output-escaping="yes"></xsl:value-of>  
  即可Top

15 楼parol2910(four wheel drive)回复于 2004-11-04 12:47:54 得分 0

我现在是这么做的:  
  XmlCDataSection   cdata=xd.CreateCDataSection(article.Value.ToString().Trim());  
  XmlElement   body=xd.CreateElement("body");  
  body.AppendChild(cdata);  
  xerecord.AppendChild(body);  
   
  其中  
  article.Value.ToString().Trim()的内容是<html></html>  
  当我执行完后,它在XML文件中写入了  
  <body><![CDATA[&lt;html&gt;&lt;/html&gt;&lt;&gt;&lt;&gt;&lt;&gt;]]></body>  
  等我再用XSL显示出来的时候,它就直接把CDATA中的内容显示出来了.没有把&lt;和&gt;转换成 < 和>    ...  
  再帮忙.谢谢.Top

16 楼parol2910(four wheel drive)回复于 2004-11-04 12:56:14 得分 0

TO 孟子E章:  
  不行呀.  
  还是那样.Top

17 楼parol2910(four wheel drive)回复于 2004-11-04 13:20:52 得分 0

大家帮忙呀...谢谢  
  解决就散分...Top

18 楼net_lover(【孟子E章】)回复于 2004-11-04 13:27:37 得分 0

我给你写个  
  Top

19 楼parol2910(four wheel drive)回复于 2004-11-04 13:29:05 得分 0

好呀.谢谢.  
  在线等你.Top

20 楼BearRui(孤熊 | 带你去看海!)回复于 2004-11-04 13:39:19 得分 0

XSL:  
   
  <?xml   version="1.0"   encoding="UTF-8"   ?>  
  <xsl:stylesheet   version="1.0"   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
      <xsl:template   match="/">  
          <html>  
          <head></head>  
          <body>  
                <xsl:value-of   select="//body"   disable-output-escaping="yes"></xsl:value-of>  
          </body>  
          </html>  
      </xsl:template>  
  </xsl:stylesheet>  
  ------------------  
  XML:  
  <?xml   version="1.0"?>  
  <?xml-stylesheet   type="text/xsl"   href="123.xsl"?>  
  <root>  
      <body><![CDATA[  
            &lt;html&gt;&lt;/html&gt;&lt;&gt;&lt;&gt;&lt;&gt;  
                  ]]>  
      </body>  
  </root>Top

21 楼net_lover(【孟子E章】)回复于 2004-11-04 13:42:54 得分 0

<%@   Page   ValidateRequest="false"   Language="C#"   Debug="true"%>  
  <Script   Language="C#"   Runat="Server">  
  public   void   Button1_Click(Object   sender,EventArgs   e)  
    {  
    System.Xml.XmlDocument   x   =   new   System.Xml.XmlDocument();  
    x.LoadXml("<root/>");  
    Response.Write(Server.HtmlEncode(x.OuterXml));    
  System.Xml.XmlCDataSection   body=x.CreateCDataSection(article.Value);  
  x.DocumentElement.AppendChild(body);  
  Response.Write("<hr>");  
  Response.Write(Server.HtmlEncode(x.OuterXml));  
    }  
  </Script>  
  <html>  
  <head><title>HtmlButton控件</title></head>  
  <body>  
  <form   runat="server">  
  <textarea   id=article   runat=server><html></html></textarea>  
  <button   id="button1"   runat="server"   OnServerClick="Button1_Click">提交</button>  
  </form>  
  </center>  
  </body>  
  </html>Top

22 楼parol2910(four wheel drive)回复于 2004-11-04 14:02:48 得分 0

这回晕了...  
  在你们给的例子里边是好使的.可是我的却不好使.  
  我再看看.Top

23 楼BearRui(孤熊 | 带你去看海!)回复于 2004-11-04 14:06:32 得分 0

看看你的XSL文件,可能有些地方不同而没注意!!!Top

24 楼parol2910(four wheel drive)回复于 2004-11-04 14:33:13 得分 0

太谢谢BearRui(孤熊   |   爱情!它把我给忘了!)    和     net_lover(孟子E章)    
  谢谢.  
  散分.:)Top

相关问题

  • 在线操作xml?
  • XML问题,在线等待
  • xml问题在线求助!!
  • xml问题,急,在线等!!!
  • XML问题 在线等待
  • XML问题~急~~在线等
  • ASP和XML,在线等,急!!!
  • 在线等,xml的问题
  • XML transform 问题!在线等!!
  • 在线等待:xml文件中如何生成xml-stylesheet

关键词

得分解答快速导航

  • 帖主:parol2910
  • BearRui
  • net_lover

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

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