将xml节点映射到F#中的用户定义数据类型

时间:2013-01-22 22:55:35

标签: xml macros f#

尝试将XML文件(例如销售记录列表)转换为F#中的type_sales列表。 但我不想写像: xmlnode.product = typesales.product xmlnode.price = typesales.price ... etc

我想要一些代码(“产品”,“价格”等等)并进行映射,类似于lisp宏

我可以在f#中执行此操作吗?

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

感谢KVB的链接。对于F#来说很新,我在F#中使用这个XML文件时出现了问题,但现在我认为我的一般问题是:f#中有什么像lisp中的宏吗?

1 个答案:

答案 0 :(得分:-1)

有一个可能有用的F#XML类型提供程序:

http://fsharp.github.io/FSharp.Data/library/XmlProvider.html

在编译时给定XML文件,它将生成以静态类型方式访问文档所需的类型。

type Author = XmlProvider<"""<author name="Paul Feyerabend" born="1924" />""">
let sample = Author.Parse("""<author name="Karl Popper" born="1902" />""")

printfn "%s (%d)" sample.Name sample.Born