【问题标题】:How do I read XML in F#?如何在 F# 中读取 XML?
【发布时间】:2013-10-21 05:04:09
【问题描述】:

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

【问题讨论】:

标签: f# xmlreader


【解决方案1】:

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

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

如果您有一个结构复杂的不规则文件(例如 XHTML),那么我会使用 XDocument 类型(它的 API 比 XmlDocument 更现代,并且可以从 F# 中轻松使用)。

【讨论】:

  • 我认为最好使用XDocument 而不是XmlDocument,除非有特定原因不使用(例如,与遗留代码互操作)。 XDocument 速度更快,内存效率更高,它还允许您使用 Xlinq 实现从 XML 文档中快速提取数据。
猜你喜欢
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-13
  • 2013-10-07
  • 2013-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多