一千萬個為什麽

搜索

VB.net解析XML(屬性)youtube gdata

こんにちは皆さん、これは私の最初の訪問です xmlファイルからいくつかのデータを取得する際に問題が発生しました

VBコードは

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    If (ComboBox1.Text = "") Then

        MessageBox.Show("No file name entered")

    Else


        Dim document As XmlReader = New XmlTextReader("http://gdata.youtube.com/feeds/api/users/kavvsona")

        While (document.Read())

            Dim type = document.NodeType

            If (type = XmlNodeType.Element) Then

                If (document.Name = "yt:statistics/viewCount") Then

                    xmlMyName.Visible = True
                    xmlMyName.Text = document.ReadInnerXml.ToString()

                End If

                If (document.Name = "yt:statistics/viewCount/") Then

                    xmlMyEmail.Visible = True
                    xmlMyEmail.Text = document.ReadInnerXml.ToString()

                End If

                If (document.Name = "viewCount") Then

                    xmlMyTel.Visible = True
                    xmlMyTel.Text = document.ReadInnerXml.ToString()

                End If

                If (document.Name = "Notes") Then

                    xmlMyNotes.Visible = True
                    xmlMyNotes.Text = document.ReadInnerXml.ToString()

                End If

            End If

        End While


    End If

End Sub

And the xml file is available under this link http://gdata.youtube.com/feeds/api/users/kavvsona

私は以下の情報を抽出したい:


kavvsona

私はyt:thingと屬性からそれをどうやって得るのか分かりません。私を助けてください

ありがとう

最佳答案

この種のXML解析タスクには、 XPath を使用する必要があります。

Imports System.Xml.XPath
...
Dim nsManager As XmlNamespaceManager = New XmlNamespaceManager(New NameTable())
nsManager.AddNamespace("yt", "http://gdata.youtube.com/schemas/2007")

Dim xml As XDocument = XDocument.Load("http://gdata.youtube.com/feeds/api/users/kavvsona")
Dim statsElement As XElement = DirectCast(xml.XPathEvaluate("//yt:statistics", nsManager), IEnumerable).Cast(Of XElement)().Single()
Dim usernameElement As XElement = DirectCast(xml.XPathEvaluate("//yt:username", nsManager), IEnumerable).Cast(Of XElement)().Single()

Dim viewCount As Int32 = Int32.Parse(statsElement.Attribute("viewCount").Value)
Dim username As String = usernameElement.Value

MessageBox.Show(username & ": " & viewCount)

結果:

kavvsona: 120873

轉載註明原文: VB.net解析XML(屬性)youtube gdata