【发布时间】:2013-04-12 15:18:32
【问题描述】:
大家好,我有以下代码:
Using reader As XmlReader = XmlReader.Create(New StringReader(xmlString))
reader.ReadToFollowing("GridChannel")
Dim Channel As String = reader.GetAttribute("Channel")
Dim DisplayName As String = reader.GetAttribute("DisplayName")
reader.ReadToFollowing("Airings")
reader.ReadToFollowing("GridAiring")
Dim Title As String = reader.GetAttribute("Title")
Dim EpisodeTitle As String = reader.GetAttribute("EpisodeTitle")
Dim AiringTDurationime As String = reader.GetAttribute("AiringTDurationime")
Dim isHD As Boolean = Convert.ToBoolean(reader.GetAttribute("isHD"))
Dim TVRating As String = reader.GetAttribute("TVRating")
End Using
上面的代码工作得很好,但我在循环 Airings 部分时遇到问题。
该部分的 XML 如下所示:
<Airings>
<GridAiring ProgramId="35951" SeriesId="3490" Title="Matlock" EpisodeTitle="Santa Claus" AiringTime="2013-04-12T14:00:00Z" Duration="60" Color="Color" AiringType="Unknown" CC="true" LetterBox="false" Stereo="false" HD="false" SAP="false" TVRating="TV-PG" Dolby="false" DSS="false" HDLevel="HD Level Unknown" DVS="false" Category="Other" Subcategory="drama" Sports="false"/>
<GridAiring ProgramId="828869" SeriesId="1409" Title="In the Heat of the Night" EpisodeTitle="Hatton's Turn" AiringTime="2013-04-12T15:00:00Z" Duration="60" Color="Color" AiringType="Unknown" CC="true" LetterBox="false" Stereo="false" HD="false" SAP="false" TVRating="TV-PG@V" Dolby="false" DSS="false" HDLevel="HD Level Unknown" DVS="false" Category="Other" Subcategory="crime drama" Sports="false"/>
<GridAiring ProgramId="978338" SeriesId="1409" Title="In the Heat of the Night" EpisodeTitle="Hatton's Turn" AiringTime="2013-04-12T16:00:00Z" Duration="60" Color="Color" AiringType="Unknown" CC="true" LetterBox="false" Stereo="false" HD="false" SAP="false" TVRating="TV-PG@V" Dolby="false" DSS="false" HDLevel="HD Level Unknown" DVS="false" Category="Other" Subcategory="crime drama" Sports="false"/>
<GridAiring ProgramId="4210626" Title="WGN Midday News" AiringTime="2013-04-12T17:00:00Z" Duration="60" Color="Color" AiringType="New" CC="true" LetterBox="false" Stereo="true" HD="false" SAP="false" TVRating="None" Dolby="false" DSS="false" HDLevel="HD Level Unknown" DVS="false" Category="News" Subcategory="newscast" Sports="false"/>
<GridAiring ProgramId="878716" SeriesId="1028666" Title="Walker, Texas Ranger" EpisodeTitle="El Coyote, Part 2" AiringTime="2013-04-12T18:00:00Z" Duration="60" Color="Color" AiringType="Unknown" CC="true" LetterBox="false" Stereo="true" HD="false" SAP="false" TVRating="TV-14@V" Dolby="false" DSS="false" HDLevel="HD Level Unknown" DVS="false" Category="Other" Subcategory="crime drama" Sports="false"/>
</Airings>
【问题讨论】:
-
同意。您需要使用
XmlReader吗? -
@StevenDoggart 不,我没有,但这是我发现的最好的例子。随意告诉我一个更好的方法吗?
-
如果您需要加载 XML 文档中的所有数据,我建议使用
XmlSerializer类将文档反序列化为与文档结构匹配的对象。如果您只需要加载文档的某些部分,那么我建议您使用带有 XPath 的XmlDocument或带有 LINQ 的XDocument。 -
@StevenDoggart 在这里更新了我的 OP。
标签: xml vb.net parsing xml-parsing xmlreader