阅读 77

xml 换行符处理 c#

XElement.ToString() 默认会把\r\n, \n转化成默认换行符(有的环境是\n,也有的环境是\r\n),若不想自动转化可以采用 NewLineHandling.None:

 1 string xmlString;
 2 
 3 var settings = new XmlWriterSettings
 4 {
 5     OmitXmlDeclaration = true,
 6     NewLineHandling = NewLineHandling.None
 7 };
 8 
 9 using (var sw = new StringWriter())
10 {
11     using (var xw = XmlWriter.Create(sw, settings))
12     {
13         node.WriteTo(xw);
14     }
15 
16     xmlString = sw.ToString();
17 }
Write with NewLineHandling.None

测试代码:

转义字符:

\r:

\n:

&: &

<: <

>: >

 1 public static void TestXml()
 2 {
 3     var str = "Value1a
Value1b
Value1c";
 4     
 5      var xDoc = XDocument.Parse(str);
 6     var element = xDoc.Descendants("Element").First();
 7     var value = element.Value;
 8     Console.WriteLine("1. Element plain value: {0}", value);
 9     Console.WriteLine("\r\nBelow log will show \\r \\n as visible characters.\r\n");
10     Console.WriteLine("2. Element Value: {0}", value.Replace("\r", "\\r").Replace("\n", "\\n"));
11     
12     Console.WriteLine("3. Element.ToString(): {0}", element.ToString().Replace("\r", "\\r").Replace("\n", "\\n"));
13     
14     var settings = new XmlWriterSettings
15     {
16         OmitXmlDeclaration = true,        
17         NewLineHandling =  NewLineHandling.None
18     };
19     
20     using (var sw = new StringWriter())
21     {
22         using (var xw = XmlWriter.Create(sw, settings))
23         {
24             element.WriteTo(xw);                    
25         }
26         
27         var eleStr = sw.ToString();
28         Console.WriteLine("4. Serialize with NewLineHandling.None: {0}", eleStr.Replace("\r", "\\r").Replace("\n", "\\n"));
29     }    
30 }

 

在windows 10 上测试:

1. Element plain value: Value1a
Value1b
Value1c

Below log will show \r \n as visible characters.

2. Element Value: Value1a\nValue1b\r\nValue1c
3. Element.ToString(): Value1a\r\nValue1b\r\nValue1c
4. Serialize with NewLineHandling.None: Value1a\nValue1b\r\nValue1c

原文:https://www.cnblogs.com/fancy-xt/p/15047022.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐