如何在F#中读取XML?

时间:2013-10-21 05:04:10

标签: f# xmlreader

我想知道使用XmlReader读取XML在惯用的功能样式中会是什么样子。即如何处理作为有状态实体的XmlReader。有一个很好的例子吗?

1 个答案:

答案 0 :(得分:7)

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

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

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