使用XmlTextWriter.WriteString保留字符串中的空格

时间:2008-10-15 15:55:56

标签: c# .net xml whitespace

我正在用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个空白字符。

如何防止这种情况?

3 个答案:

答案 0 :(得分:0)

抱歉,之前感到困惑(删除了错误的答案)。但我无法再现你似乎看到的东西。检查这个程序......它确实保留了空间。

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();
    }
}

答案 1 :(得分:0)

行...

这只是IE显示问题。我想这与字体有关。

当我在记事本++中打开XML时,我发现白色空间实际上已被正确保存。

答案 2 :(得分:0)

如果在IE中显示很重要,可以使用WriteCData()将文本括在CDATA块中而不是WriteString()。