繁体   English   中英

在vb中解析xml

[英]Parsing xml in vb

我有一个非常通用的xml文件,我正在寻找解析,但是,我不太确定在哪里可以找到从xml文件中读取数据的教程。 我正在寻找创建纸牌游戏,我希望能够创建自己的纸牌。 我已经创建了创建卡片的文件,但现在我必须阅读它们。

这是我的xml文件的格式:

<?xml version="1.0" encoding="utf-8"?>
<Cards>
<Card>
<ID>1</ID>
<Name>Cardsname</Name>
<Type>teetete</Type>
<Image>1gc.jpg</Image>
<Description>test</Description>
</Card>
</Cards>

如您所见,还有一个名为“Cards”的根节点,其中包含所有卡片。 我需要访问此节点并找到所有'Card'节点及其子节点(id,name,type,image)。 我如何访问这些文本?

编辑:只是弄清楚如何访问它,但无法弄清楚如何循环它。 如果我想访问多个元素,我该怎么做?

    Sub Main()
    Dim output As StringBuilder = New StringBuilder()
    Using reader As XmlReader = New XmlTextReader("C:\Godlycards\cards.xml")
        reader.ReadToFollowing("Card")
        reader.MoveToFirstAttribute()
        reader.ReadToFollowing("ID")
        output.AppendLine("ID: " + reader.ReadElementContentAsString())
        reader.ReadToFollowing("Name")
        output.AppendLine("Name: " + reader.ReadElementContentAsString())
        reader.ReadToFollowing("Type")
        output.AppendLine("Type: " + reader.ReadElementContentAsString())
        reader.ReadToFollowing("Image")
        output.AppendLine("Image: " + reader.ReadElementContentAsString())
        reader.ReadToFollowing("Description")
        output.AppendLine("Description: " + reader.ReadElementContentAsString())
        MessageBox.Show(output.ToString)
    End Using
End Sub

谢谢!

使用XMLReader

请参阅此链接以获取示例。

XDocument / XElement是一种处理案例中的便捷方式。 考虑这个例子:

Dim xml As XDocument = <?xml version="1.0" encoding="utf-8"?>
                       <Cards>
                         <Card>
                           <ID>1</ID>
                           <Name>Cardsname</Name>
                           <Type>teetete</Type>
                           <Image>1gc.jpg</Image>
                           <Description>test</Description>
                         </Card>
                       </Cards>

是的,您可以将原始xml粘贴到您的代码中。

然后可以使用以下方法访问您的卡片集:

Dim cards As IEnumerable(Of XElement) = xml.Root.Elements("Card")

对于特定的卡,您可以获得如下属性:

Dim cardID As String = cards(0).Element("ID").Value

作为旁注,您可能正在使用XDocument.LoadXDocument.Parse ,而不是将XML与您的代码内联。 休息是一样的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM