使用asp.net从xml文件写入/读取时保留回车

fat*_*tma 5 c# xml asp.net xslt

我有TextBox来取消用户的评论,评论会被保存到XML文件中,问题是我写文字时输入密钥(新行)它会以正确的方式保存到xml中这样

            <comment>
              sdagsg
               fag
                fdhfdhgf
              </comment>
Run Code Online (Sandbox Code Playgroud)

但是当我从xml读取时看起来像这样的"sdagsg fag fdhfdhgf"

           string strXstFile = Server.MapPath(@"~/TopicAndComments.xsl");
        XslCompiledTransform x = new XslCompiledTransform();

        // Load the XML 
        XPathDocument doc = new XPathDocument(Server.MapPath(@"~/TopicAndComments.xml"));

        // Load the style sheet.
        XslCompiledTransform xslt = new XslCompiledTransform();
        xslt.Load(strXstFile);

        MemoryStream ms = new MemoryStream();
        XmlTextWriter writer = new XmlTextWriter(ms, Encoding.ASCII);
        StreamReader rd = new StreamReader(ms);
        //Pass Topic ID to XSL file
        XsltArgumentList xslArg = new XsltArgumentList();
        xslArg.AddParam("TopicID", "", HiddenField_SelectedTopicID.Value.ToString());
        xslt.Transform(doc, xslArg, writer);

        ms.Position = 0;
        strHtml = rd.ReadToEnd();
        rd.Close();
        ms.Close();
Run Code Online (Sandbox Code Playgroud)

Mel*_*igy 2

XML文件的读取没有问题。XML 对空格不敏感。

当您希望 XML 中的某些部分不遵循所有 XML 规则并且有点特殊时,您可以使用所谓的 CDATA 部分。这是您在“保存”用户数据时应该使用的。

查看如何在 C# 中执行此操作的一种方法。您编写 XML 的方式可能有不同的等效方式:
http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.createcdatasection.aspx

我想我同意达维德·皮拉斯 (Davide Piras) 对这个问题的评论。我认为您遇到了与使用 XmlDocument 转义换行符相同的问题,因此从那里选择了我最喜欢的答案。