Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用xml属性作为对象名在f#中反序列化xml?_Xml_F#_Deserialization - Fatal编程技术网

如何使用xml属性作为对象名在f#中反序列化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文件,其中包含所有这些字符串,供其他项目访问

为此,我当然需要一个XML反序列化程序来将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来实现这一点吗?

有一个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。示例如下: