0

こんにちは皆さん、これは私の最初の訪問です。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

xml ファイルは、このリンクhttp://gdata.youtube.com/feeds/api/users/kavvsonaから入手できます。

次の情報を抽出したい:

<yt:statistics lastWebAccess='1970-01-01T00:00:00.000Z' subscriberCount='9574' videoWatchCount='0' viewCount='120873' totalUploadViews='2374024'/>
<media:thumbnail url='http://i1.ytimg.com/i/T1ybzRP4iTT7NU6qbhV24g/1.jpg?v=51064230'/><yt:username>kavvsona</yt:username>

yt: の物と属性からそれを取得する方法がわかりません。私を助けてください

ありがとう

4

2 に答える 2

0

XMLTextReader クラスを使用しているため、GetAttribute メソッドを確認してください

于 2013-06-23T14:48:28.517 に答える
0

この種の 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
于 2013-06-23T14:54:56.087 に答える