如何使用xml属性作为对象名在f#中反序列化xml?
我正在制定一个解决方案,它使用了大量需要在项目之间共享的字符串。所以为了避免打字错误,我制作了一个XML文件,其中包含所有这些字符串,供其他项目访问 为此,我当然需要一个XML反序列化程序来将XML数据转换为对象 我的XML文件如下所示:如何使用xml属性作为对象名在f#中反序列化xml?,xml,f#,deserialization,Xml,F#,Deserialization,我正在制定一个解决方案,它使用了大量需要在项目之间共享的字符串。所以为了避免打字错误,我制作了一个XML文件,其中包含所有这些字符串,供其他项目访问 为此,我当然需要一个XML反序列化程序来将XML数据转换为对象 我的XML文件如下所示: <?xml version="1.0" encoding="utf-8" ?> <Strings> <String Name="string1">foo</String> <String N
<?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来实现这一点吗?有一个F#XML类型提供程序可能很有用:
在编译时给定一个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
type Author=XmlProvider
让sample=Author.Parse(“”)
printfn“%s(%d)”样本。名称样本。出生
从FSharp.Data尝试XmlProvider。示例如下: