是否有可能將內部xml元素反序列化爲它的平等類?我有下面的XML片段:內部元素的XML反序列化
<?xml version="1.0" encoding="utf-8" ?>
<tileconfiguration xmlns="http://somenamespace/tile-configuration">
<tile top_left_x="3" top_left_y="1" bottom_right_x="38" bottom_right_y="48">
<child>
</child>
</tile>
</tileconfiguration>
和等價類表示<tile />
元素:
[System.Xml.Serialization.XmlRoot(ElementName = "tile")]
public class Tile : System.Xml.Serialization.IXmlSerializable
{
public System.Xml.Schema.XmlSchema GetSchema()
{
throw new NotImplementedException();
}
public void ReadXml(System.Xml.XmlReader reader)
{
throw new NotImplementedException();
}
public void WriteXml(System.Xml.XmlWriter writer)
{
throw new NotImplementedException();
}
}
的問題是,每次我試圖反序列化<tile_configuration />
內<tile />
實例 - XML解串器在文檔(2,2)中拋出錯誤。
System.Xml.Serialization.XmlSerializer serial = new System.Xml.Serialization.XmlSerializer(typeof(Tile));
System.IO.TextReader t = new System.IO.StreamReader("c:\\temp\\deserial.xml");
Tile q = (Tile)serial.Deserialize(t);
如果我創建一個類來表示<tile_configuration />
並直接從deserialise,它工作正常,調試器上進入TileConfiguration
類ReadXml
方法從中我就可以管理孩子<tile />
的解析(和decendent )元素 - 但這需要每次重新讀取整個xml文件。
簡而言之,我是否需要讀取和寫入整個XML文件 - 每次我想要使用序列化/反序列化或從某種方式允許我忽略extranous外部元素並直接將相關的子xml元素反序列化到它們的根代碼equivilents沒有解析器夾緊錯誤?
非常感謝。
想這可能是這樣的限制範圍。太棒了,非常感謝我會放棄它。 – Yumbelie 2012-08-03 17:21:08
你有沒有遇到過這種情況?我面臨同樣的問題 – Andy 2016-10-10 13:27:49