我有一个现有的应用程序,它将数据作为XML DOM模型进行操作。我现在想把这些数据作为C#对象的集合传递给另一个子系统。
据我所知,我可以将DOM表示序列化为MemoryStream,并使用XmlSerializer对流进行反序列化。当然有一种直接处理DOM表示的方法,没有介入的文本表示?但我找不到它。
如何在DOM表示中使用System.Xml.Serialization?
答案 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
并执行您喜欢的投影。