4

我想知道用 XmlReader 读取 XML 在惯用的函数样式中会是什么样子。即应该如何对待 XmlReader 作为有状态实体。有很好的例子吗?

4

1 回答 1

7

XmlReader如果您需要处理大型 XML 文档而不读取内存中的整个文档(即流处理),我会说这是一个不错的选择。它不是特别实用,但这很好 - 在 F# 中执行 I/O 时,您不需要以函数方式编写它,因为 I/O 总是很棘手(并非不可能,但 F# 用户只是倾向于使用标准 .NET 库)。

如果您的文件适合内存,并且具有相当规则的结构,那么 John 提到的 XML 类型提供程序是最佳选择。调用提供者时,您可以给它一个示例 XML 文件,提供者推断结构,您可以以良好的类型化方式读取 XML。

如果您有一个结构复杂的不规则文件(类似于 XHTML),那么我会使用该XDocument类型(它具有比 F# 更现代的 APIXmlDocument并且可以很容易地从 F# 中使用)。

于 2013-10-21T05:22:41.713 回答