我想知道使用XmlReader读取XML在惯用的功能样式中会是什么样子.即如何处理作为有状态实体的XmlReader.有一个很好的例子吗?
我会这样说 XmlReader如果您需要处理大型XML文档而不在内存中读取整个文档(即流处理),是一个不错的选择.它不是特别功能,但这非常好 - 在F#中进行I/O时,您不需要以功能方式编写它,因为I/O总是很棘手(不是不可能,但F#用户只是倾向于使用标准.NET库).
如果您的文件适合内存,并且具有相当规则的结构,那么John提到的XML类型提供程序是最佳选择.在调用提供程序时,您可以为其提供一个示例XML文件,提供程序可以推断出结构,您可以以一种不错的方式读取XML.
如果你有一个具有复杂结构的不规则文件(类似于XHTML),那么我将使用该XDocument类型(它具有比XmlDocumentF#更容易使用的现代API ).