首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未定义类型“”XmlProvider“”

未定义类型“”XmlProvider“”
EN

Stack Overflow用户
提问于 2013-07-13 07:38:42
回答 3查看 2.2K关注 0票数 3

我正在尝试使用FSharp.Data第三方库,但在XmlProvider类上遇到错误The type 'XmlProvider' is not defined

代码语言:javascript
运行
复制
namespace KMyMoney

open FSharp.Data

  module Read =

    let xml = File.ReadAllText("KMyMoneySampleFile.xml")
    type KMyMoneySource = XmlProvider<xml>

我正在使用NuGet来获取这个库。库是'FSharp.Data 1.1.8‘

当我输入FSharp.Data.时,会给出四个选项:CsvFreebaseOperatorsJsonRuntimeImplementation

我是不是遗漏了什么?我对F#比较陌生。所以,对于这个简单的问题,我很抱歉。我已经在GitHub上看过了,但没有看到任何关于这个问题的提及。我正在用F#创建一个库。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-15 20:27:16

<>之间的参数是类型提供程序的Sample参数,该参数必须是编译时间常数。该示例用于推断xml的结构。

试着这样做:

代码语言:javascript
运行
复制
namespace KMyMoney

open FSharp.Data

module Read =

    type KMyMoneySource = XmlProvider<"KMyMoneySampleFile.xml">

然后做

代码语言:javascript
运行
复制
let xml = KMyMoneySource.Load("KMyMoneySampleFile.xml")

或者,如果您正在读取用作XmlProvider示例参数的同一文件,只需执行以下操作:

代码语言:javascript
运行
复制
let xml = KMyMoneySource.GetSample() 

请注意,类型提供程序是F# 3.0的一项功能,因此这只适用于VS2012或更高版本。如果你使用的是VS2010,你只会得到一堆语法错误。

票数 5
EN

Stack Overflow用户

发布于 2013-07-13 10:20:07

数据必须在编译时可用,这是通过将文件引用放在尖括号中来实现的(请注意,它是包含文件路径的字符串文字,而不是包含数据的字符串绑定)。您也可以通过将包含格式的字符串文本放在括号中来实现此目的:

代码语言:javascript
运行
复制
type Stocks = CsvProvider<"../docs/MSFT.csv">

let csv = new CsvProvider<"1,2,3", HasHeaders = false, Schema = "Duration (float<second>),foo,float option">()

有关详细信息,请参阅here

票数 3
EN

Stack Overflow用户

发布于 2013-07-13 20:38:59

看看这个link。基本上,您还需要添加System.Xml.Linq.dll作为对项目的引用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17625514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档