0

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

我该如何防止这种情况?

4

3 回答 3

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();
    }
}
于 2008-10-15T16:11:36.693 回答
0

好的...

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

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

于 2008-10-15T16:13:13.710 回答
0

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

于 2008-10-16T08:31:41.303 回答