假设我有以下XML文件:
<Movies>
<Movie ownerName="Ryan">
<Title>The Lord of the Rings Trilogy</Title>
<Title>Saving Private Ryan</Title>
<Title>etc</Title>
</Movie>
<Movie ownerName="Rynina">
<Title>Foo</Title>
<Title>Bar</Title>
</Movie>
</Movies>
我所使用的是使用Linq to Xml来检索MovieCollection类型的类。 MovieCollection有两个属性,OwnerName(String)和Movies(List(Of String))。
一般来说,我会做类似的事情:
From entry in movies...<Movie>_
Select New MovieCollection With { _
.OwnerName = entry.@Title.Value, _
.MovieCollection = entry.<Title>.Value}
然而在这种情况下,这显然不会起作用。无论如何要使用Linq来填充MovieCollection列表中包含该所有者的所有电影吗?
答案 0 :(得分:2)
您应该为代码Movie
MovieCollection
和Title
Movie
命名。
使用以下命令解析XML:
Dim doc = XDocument.Parse("<xml>")
或
Dim doc = XDocument.Load("path")
并使用此:
Dim movieCollections = From movieCol In doc.Root.Elements("Movie")
Select New MovieCollection() With
{
.OwnerName = movieCol.Attribute("ownerName"),
.Movies = movieCol.Elements("Title")
.Select(Function(m) m.Value)
.ToList()
}
答案 1 :(得分:0)