13

我这里有一个小代码:

string attributeValue = "Hello" + Environment.NewLine + " Hello 2";

XElement element = new XElement("test");
XElement subElement = new XElement("subTest");
XAttribute attribute = new XAttribute("key", "Hello");
XAttribute attribute2 = new XAttribute("key2", attributeValue);
subElement.Add(attribute);
subElement.Add(attribute2);
element.Add(subElement);

Console.Write(element.ToString());
Console.ReadLine();

我有一个问题,基本上 /r/n 或新行在
属性中转换,但我不想拥有它,我想保留它 /r/n 就像我将此 XML 与 Microsoft Word 文档模板一起使用时一样,新行没有实现,虽然它是多行文本,在word文档中我只得到空格。但没有新行:/

有人有什么想法吗?

尽管我已经在模板中设置了允许多行 int 字段的属性。

4

1 回答 1

14

实际上,您得到的行为
Environment.NewLine. 您可以做一个简单的测试来确认这一点(将两个添加TextBoxes到您FormMultiline property设置为True:textBox1textBox2):

textBox1.Text = element.ToString(); //

string text = element.ToString().Replace("
", Environment.NewLine);
textBox2.Text = text; ///r/n

另一方面,如果您无论如何都想避免该部分(例如:因为想要将给定的字符串输出到不在 .NET 上运行的外部程序),您可以在处理和新行之后
依赖上述内容。ReplaceXElement

于 2013-09-09T08:14:14.540 回答