问题描述
我一直在阅读LINQ文档,并在Stack Overflow上查看过一些以前的答案,但是我仍然对LINQ的工作方式感到困惑.我想从网站上获取一些数据,但是我不知道如何获取xml解析为字符串.这是我到目前为止的内容:
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
因此,在加载表单时,它将XNamespace设置为ns,将XDocument设置为xml.当我单击表单上的cmdGetData按钮时,它应该将网站名称加载到XNamespace,然后获取第一个id元素的值并将其放在strId变量中.然后,它应该在消息框中打印该值.我知道我做错了什么,但我不知道该怎么做.
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.
推荐答案
这是一个开始
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
这篇关于使用VB.NET和LINQ从网站抓取XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!