【问题标题】:Preserve white space in string with XmlTextWriter.WriteString使用 XmlTextWriter.WriteString 保留字符串中的空格
【发布时间】:2008-10-15 15:55:55
【问题描述】:

我正在用 C# 编写一个 XML 文档。

我有这样的事情......

string output = "REAPP DUE  NO OF  M CASE NBR   APPL NBR      DATE  GRPS   M CASE NBR   APPL NBR      DATE  GRPS   _                                       _                                       _";

我会这样做......

        objXmlTextWriter.WriteStartElement("Case");
        objXmlTextWriter.WriteString(record);
        objXmlTextWriter.WriteEndElement();  

xml 元素变成了这样......

<Case>REAPP DUE NO OF REAPP DUE NO OF M CASE NBR APPL NBR DATE GRPS M CASE NBR APPL NBR DATE GRPS _ _ _ </Case>

基本上已经将长度大于1的空格转换为1个字符的空格。

如何防止这种情况发生?

【问题讨论】:

    标签: c# .net xml whitespace


    【解决方案1】:

    对不起,之前弄糊涂了(删除了错误的答案)。但我无法重现您似乎看到的内容。检查这个程序......它确实保留了空间。

    class Program
    {
        static void Main(string[] args)
        {
    
            XmlWriter w = XmlTextWriter.Create("./foo.xml");
            w.WriteStartElement("foo");
            w.WriteString(" THIS   HAS VARYING     SPACeS ");
            w.WriteEndElement();
            w.Close();
    
            StreamReader sr = new StreamReader("./foo.xml");
            Console.WriteLine(sr.ReadToEnd());
            Console.ReadKey();
        }
    }
    

    【讨论】:

      【解决方案2】:

      好的...

      这只是一个 IE 显示问题。我猜与字体有关。

      当我在记事本++ 中打开 XML 时,我看到空白实际上保留了正确。

      【讨论】:

        【解决方案3】:

        如果在 IE 中显示很重要,您可以使用 WriteCData() 代替 WriteString() 将文本包含在 CDATA 块中。

        【讨论】:

          猜你喜欢
          • 2021-10-24
          • 1970-01-01
          • 1970-01-01
          • 2017-09-03
          • 2023-03-15
          • 1970-01-01
          • 2010-09-09
          相关资源
          最近更新 更多