在VB.NET/C中获取XMLElement的子元素#

在VB.NET/C中获取XMLElement的子元素#,xml,vb.net,serialization,Xml,Vb.net,Serialization,我试图通过以下端点从欧洲央行(ECB)获取数据: 我创建了一个适合XML元素的结构。但是,子节点不会出现。我是否使用了错误的元素?这是结构图 Xml: 参考利率 欧洲中央银行 课程: 公共类发送器 作为字符串的公共属性名称 末级 公共类多维数据集 作为字符串的公共属性货币 公共财产费率为字符串 末级 公共类信封 作为字符串的公共属性主题 作为发送者的公共属性发送者 作为多维数据集的公共属性多维数据集 作为字符串的公共属性 公共属性Xmlns作为字符串 末级 当我获取这个结构并使用以下函数

我试图通过以下端点从欧洲央行(ECB)获取数据:

我创建了一个适合XML元素的结构。但是,子节点不会出现。我是否使用了错误的元素?这是结构图

Xml:


参考利率
欧洲中央银行
课程:


公共类发送器
作为字符串的公共属性名称
末级
公共类多维数据集
作为字符串的公共属性货币
公共财产费率为字符串
末级
公共类信封
作为字符串的公共属性主题
作为发送者的公共属性发送者
作为多维数据集的公共属性多维数据集
作为字符串的公共属性
公共属性Xmlns作为字符串
末级
当我获取这个结构并使用以下函数将其序列化回来时

公共函数ToXML(ByVal struct作为信封,ByVal t作为类型)作为字符串
Dim stringwriter=New System.IO.stringwriter()
Dim序列化程序=新的XmlSerializer(t)
serializer.Serialize(stringwriter,struct)
返回stringwriter.ToString()
端函数
它将删除所有子节点。

使用这些类


部分公共类信封
公共属性subject()作为字符串
公共属性发件人()作为信封发件人
公共属性多维数据集()作为多维数据集
末级
部分公共类信封
作为字符串的公共属性名()
末级
部分公共类多维数据集
公共属性Cube1()作为CubeCube
末级
部分公共类CubeCube
作为cubecube()的公共属性多维数据集()
公共属性时间()作为日期
末级
部分公共类立方体
公共属性currency()作为字符串
以十进制表示的公共财产费率()
末级
用法:

Dim xml=
参考利率
欧洲中央银行
Dim s作为新的Xml.Serialization.XmlSerializer(GetType(信封))
暗环境作为信封
'例如,您可以使用streamreader来代替这里的xml.ToString
使用sr作为新的System.IO.StringReader(xml.ToString)
env=CType(反序列化(sr),信封)
终端使用

如果复制原始XML,然后在Visual Studio中选择“编辑”->“特殊粘贴”->“将XML粘贴为类”,它将为您创建类。从那里很容易获得数据。对,你的类的一个问题是你只有一个多维数据集,每种类型的多维数据集都应该有不同的类。@AndrewMorton我在VS2017的一个C#项目中尝试过这个。它只有JSON。我遗漏了什么吗?@djv我能说服你编个例子吗?:-)@TakeruNakajima是的,我有。如果我没有花那么多时间编辑你的问题,我会做得更快;)一个绝对的传奇@TakeruNakajima很高兴你能成功。无论如何,我添加了一个用法示例。@TakeruNakajima类中的一些数组属性可能更适合作为非数组属性。这取决于是否可以有多个xml节点。默认情况下,VS将它们设置为数组。