【发布时间】:2018-02-12 12:54:23
【问题描述】:
大家好。
我从 Musicbrainz 网络服务收到以下 XML 响应:http://musicbrainz.org/ws/2/artist/5dedf5cf-a598-4408-9556-3bf3f149f3ba?inc=url-rels%20artist-rels&fmt=xml
如何获取“乐队成员”下节点的值:“开始”、“结束”、“属性(艺术家演奏的乐器)”、“排序名称”和“艺术家 ID”?
到目前为止,我得到了以下内容:
Dim fullURL As String = "Http://localhost:5000/ws/2/artist/5dedf5cf-a598-4408-9556-3bf3f149f3ba?inc=url-rels%20artist-rels&fmt=xml"
Dim mBrainz = XElement.Load(fullURL)
' pruebas desde aqui
Dim root As XElement = XElement.Load(fullURL)
localhost,因为我在 VM 机器上获得了 MB 数据库的本地副本。
我对 XML 还很陌生,这已经让我困了好几个星期了。我四处搜索,但我可以找到一个节点值的解决方案,但它不会进一步获取诸如艺术家 ID 之类的值。
我们的想法是获取乐队的所有成员 - 从何时到何时演奏乐器并获取他们的 ID,以便我可以依次搜索此人以找出他曾是哪些乐队的成员。
我需要将这些值中的每一个都分配给局部变量,以便稍后处理并保存在数据库中。
非常感谢您的任何启发。
胡安
【问题讨论】:
-
我建议你看看反序列化。这使您可以将 xml 转换为已知的对象模型,以便您可以轻松地参考
metadata.artist.name之类的内容来获取 WhiteSnake。 -
我将从设计您的数据库表开始。然后将xml解析到表中。然后决定是否要使用需要类匹配 xml 结构的 xml 反序列化,或者是否要创建类似于 Mark 的 LINQPad 解决方案的自定义序列化方法。我可以使用 Net Library xml linq 来做 Mark 在 linqpad 中所做的事情。
-
嗨,非常感谢这个解决方案。我不知道 VB 中的序列化/反序列化,并在文档中查看它为我打开了一个关于数据操作的全新世界。在 VS 中有一个我不知道的 neet 工具,它可以粘贴 xml 并创建类。整晚都在努力,这太棒了。我已经有了数据库结构。我只是需要这些信息。