C# XmlSerializer trim whitespaces

本文关键字:whitespaces trim XmlSerializer | 更新日期: 2023-09-27 17:57:20

使用

XmlReader 时,我在使用 XmlSerializer 时无法修剪字符串。"忽略空格"选项不显示任何效果,元素字符串仍包含 ' 和空格。

有没有办法"即时"修剪它?我更喜欢这样的方法,因为我反序列化为字符串数组

下面是一个示例 xml:

<?xml version='1.0' encoding='UTF-8'?>
<root>
  <element>
    some random string
  </element>
  <element>
    another random string
  </element>
</root>"

下面是示例代码:

class Program
    {
        public static void Main(string[] args)
        {
            string xml =
            @"<?xml version='1.0' encoding='UTF-8'?>
            <root>
              <element>
                 some random string
              </element>
                <element>
                 another random string
              </element>
            </root>";
            var string_reader = new StringReader(xml);
            var xml_reader = XmlReader.Create(string_reader, new XmlReaderSettings()
            {
                IgnoreWhitespace = true //setting this option doesn't work
            });
            root d = (root)new XmlSerializer(typeof(root)).Deserialize(xml_reader);
            d.elements[0].Contains("'n"); //true
            //Dispose string/xml reader
            Console.Read();
        }
    }
    public class root
    { 
        [XmlElement(ElementName ="element")]
        public string[] elements { set; get; }
    }

C# XmlSerializer trim whitespaces

读取 XML 文件后,需要手动修剪掉空格

root d = (root)new XmlSerializer(typeof(root)).Deserialize(xml_reader);
for (int i = 0; i < d.elements.Count; i++)
{
  d.elements[i] = d.elements[i].Replace("'n", String.Empty).Trim();
}