我正在制作一个解决方案,它使用了大量需要在项目之间共享的字符串。因此,为了避免打字错误,我正在制作一个XML文件,其中包含所有这些字符串,供其他项目访问...
为了实现这一点,我当然需要一个XML Deserializer来将我的xml数据转换为对象......
我的XML文件看起来像这样:
<?xml version="1.0" encoding="utf-8" ?>
<Strings>
<String Name="string1">foo</String>
<String Name="string2">bar</String>
<String Name="string3">baz</String>
</Strings>
我需要能够像这样访问我的数据:string1.Value
。也就是说,使用属性作为对象名称,将数据作为数据...
我如何在F#中执行此操作?为此最好使用XDocument或XmlSerializer吗?
答案 0 :(得分:0)
有一个可能有用的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