将DOM XmlElement反序列化为.NET对象

时间:2011-09-13 16:11:25

标签: c# .net xml dom xml-deserialization

我有一个现有的应用程序,它将数据作为XML DOM模型进行操作。我现在想把这些数据作为C#对象的集合传递给另一个子系统。

据我所知,我可以将DOM表示序列化为MemoryStream,并使用XmlSerializer对流进行反序列化。当然有一种直接处理DOM表示的方法,没有介入的文本表示?但我找不到它。

如何在DOM表示中使用System.Xml.Serialization?

1 个答案:

答案 0 :(得分:4)

听起来您想将XmlDocument投影到自定义集合中。您可以使用XmlSerializer.Deserialize执行此操作,但它要求您的XmlDocument的结构与集合成员很好地排列在一起。

如果这是真的,那么使用XmlNodeReader是一个使用 XmlDocument xdoc = GetAnXmlDocument(); XmlSerializer serializer = new XmlSerializer(typeof(SomeCollection)); SomeCollection coll = xSerializer.Deserialize(new XmlNodeReader(xdoc)); 的完美方法。 例如.g。

{{1}}

但是,如果您发现XmlDocument未与您的收藏品对齐,您可能只想使用XmlSerializer.Deserialize Method并执行您喜欢的投影。