Scraping XML from a website with VB.NET and LINQ

妖精的绣舞 提交于 2019-12-11 17:10:12

问题


I've been reading thorough the LINQ documentation and looking at some previous answers on Stack Overflow but I'm still pretty confused about how LINQ works. I want to grab some data from a website, but I can't figure out how to get the xml to parse into strings. Here is what I have so far:

Public Class Form1
    'Dim xml As XDocument
    Dim ns As XNamespace
    Dim strXMLSource As String = "http://gd2.mlb.com/components/game/mlb/year_2018/month_03/day_29/gid_2018_03_29_anamlb_oakmlb_1/linescore.xml"

    Dim xml As XDocument = <?xml version="1.0" encoding="utf-16"?>
                           <game>
                               <id>
                               </id>
                               <venue>
                               </venue>
                           </game>


    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        txtXMLSource.Text = strXMLSource
    End Sub

    Private Sub cmdGetData_Click(sender As System.Object, e As System.EventArgs) Handles cmdGetData.Click
        ns = txtXMLSource.Text
        Dim strGame As XElement = xml.Descendants(ns + "game").First
        Dim strId As String = strGame.Descendants(ns + "id").First
        MessageBox.Show(strId)
    End Sub
End Class

So when the form loads it sets up an XNamespace as ns and an XDocument as xml. When I click the cmdGetData button on the form, it should load the website name to the XNamespace and then grab the value of the first id element and put it in the strId variable. And then it should print that value in a message box. I know I'm doing something wrong but I have no idea what to do to fix it.


回答1:


Here is a start

Imports System.Xml
Imports System.Xml.Linq
Module Module1
    Const URL As String = "http://gd2.mlb.com/components/game/mlb/year_2018/month_03/day_29/gid_2018_03_29_anamlb_oakmlb_1/linescore.xml"
    Sub Main()
        Dim doc As XDocument = XDocument.Load(URL)
        Dim root As XElement = doc.Root

        Dim id As String = root.Attribute("id")
    End Sub

End Module


来源:https://stackoverflow.com/questions/48235007/scraping-xml-from-a-website-with-vb-net-and-linq

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!