使用 XMLSerializer 保存从像myClass这样的类创建的对象
Public Class MyClass
{
Public String test = " " ;
}
将导致:
<MyClass>
<test> </test>
</MyClass>
但是当我想加载xml文件时,看起来它正在删除我需要的空白区域。 我怎么解决这个问题 ? 感谢
答案 0 :(得分:2)
无法复制 - 看起来很好:
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
public class MyClass
{
[XmlElement("test")]
public string Test { get; set; }
}
static class Program
{
static void Main()
{
XmlSerializer ser = new XmlSerializer(typeof(MyClass));
MyClass orig = new MyClass { Test = " " }, clone;
using (var file = XmlWriter.Create("my.xml"))
{
ser.Serialize(file, orig);
}
using (var file = XmlReader.Create("my.xml"))
{
clone = (MyClass)ser.Deserialize(file);
}
Console.WriteLine("'" + clone.Test + "'");
Console.WriteLine(File.ReadAllText("my.xml"));
}
}
输出:
' '
和
<?xml version="1.0" encoding="utf-8"?><MyClass xmlns:xsi="http://www.w3.org/2001
/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><test> </test>
</MyClass>
可能有助于更具体地了解您如何查看它,以便“看起来它正在移除空白区域”。
答案 1 :(得分:0)
我在阅读XML文件时遇到了类似的问题。我还没有使用XMLSerializer,但是在XML文件中读取XMLDocument时设置XMLDocument.PreserveWhitespace = true。