如何防止xml将/r/n转换为
?

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文档中我只得到空格。但没有新行 :/ 有人有什么想法吗?虽然我已经在模板字段的属性中设置了允许多行。
1个回答

14

实际上,您使用 
 获得的行为与使用 Environment.NewLine 的行为相同。 您可以进行简单的测试来确认此行为(向您的 Form 添加两个 TextBoxes,并将 Multiline property 设置为 True: 分别为textBox1textBox2):

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

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

另一方面,如果您想要避免
部分(例如:因为想将给定字符串输出到不在.NET上工作的外部程序),您可以在处理XElement和新行后仅依赖于前述的Replace


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接