将XML文件解析为C#类

问题描述:

有谁知道使用XSD工具生成的类来探索反序列化的XML文件而不是XPATH会带来什么好处(内存/速度)?将XML文件解析为C#类

我想说的好处是你得到了一个更强大的类型,使用起来更方便,而且如果文件中的XML数据对于创建对象无效,类的构造函数将抛出异常,所以你可以免费获得最少的数据验证。

+0

Axel,您没有使用xmlserializer进行模式验证。默认的反序列化非常快速和令人讨厌。如果您需要验证,则需要先通过先载入模式的XmlValidatingReader来吸取XML。 – Spence 2009-01-27 10:06:22

这两者是非常不同的;但XmlSerializer将始终反序列化整个对象;使用XPath,您可以选择并选择。我个人会使用XmlSerializer,尽管 - 很难弄错。

然而,XPath是一个复杂的野兽,依赖于后端。例如,XmlDocument(可变)的行为与XPathDocument(只读,针对查询进行了优化)的行为不同。

如果您不想编写样板代码,并且您需要检查XML的ANY值,那么您不会因为XSD.exe生成的类而出错。