【发布时间】:2016-07-15 15:14:06
【问题描述】:
在使用 XmlReader 时,我在使用 XmlSerializer 时无法修剪字符串。 IgnoreWhitespace 选项无效,并且元素字符串仍然包含 \n 和空格。
有没有办法“即时”修剪它? 我更喜欢这种方法,因为我反序列化为字符串数组
这是一个示例 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; }
}
【问题讨论】:
-
IgnoreWhiteSpace 属性用于读取 XML,并忽略元素和属性之间的任何空白。它不会从元素值中删除空格。更多信息在这里msdn.microsoft.com/en-us/library/…
-
我明白了,谢谢。你知道我可以在这种情况下使用什么吗?
-
在读取 XML 文件后循环遍历 root.elements 数组,并手动修剪掉空格。
标签: c# .net xml xml-serialization