Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 从本地html文件中获取文本的特定部分,并将其用作变量_Vb.net - Fatal编程技术网

Vb.net 从本地html文件中获取文本的特定部分,并将其用作变量

Vb.net 从本地html文件中获取文本的特定部分,并将其用作变量,vb.net,Vb.net,我正在用VB制作一个小的“家庭”应用程序。正如标题所说,我想从本地html文件中获取一部分文本,并将其用作变量,或者将其放入文本框中 我试过这样的东西 Private Sub Open_Button_Click(sender As Object, e As EventArgs) Handles Open_Button.Click Dim openFileDialog As New OpenFileDialog() openFileDialog.CheckFileExists =

我正在用VB制作一个小的“家庭”应用程序。正如标题所说,我想从本地html文件中获取一部分文本,并将其用作变量,或者将其放入文本框中

我试过这样的东西

Private Sub Open_Button_Click(sender As Object, e As EventArgs) Handles Open_Button.Click
    Dim openFileDialog As New OpenFileDialog()
    openFileDialog.CheckFileExists = True
    openFileDialog.CheckPathExists = True
    openFileDialog.FileName = ""
    openFileDialog.Filter = "All|*.*"
    openFileDialog.Multiselect = False
    openFileDialog.Title = "Open"

    If openFileDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
        Dim fileReader As String = My.Computer.FileSystem.ReadAllText(openFileDialog1.FileName)
            TextBox.Text = fileReader
    End If
End Sub

结果是在这个文本框中加载整个html代码。我应该怎么做才能获取html文件代码的特定部分?假设我只想从这个span中获取单词text…
这是一个文本

我对这个答案做出以下假设

  • 您的html是有效的-即id在文档中是完全唯一的
  • 你的html标签上总是有一个id
  • 您将始终使用相同的标记(例如span)
  • 我会这样做:

    ”获取html文档
    Dim fileReader As String=My.Computer.FileSystem.ReadAllText(openFileDialog1.FileName)
    '根据span元素拆分html文本
    Dim fileSplit as string()=fileReader.Split(新字符串(){“”},StringSplitOptions.None)
    '获取文本的最后一部分
    fileReader=fileSplit.last
    “我们现在需要在结束标记后修剪所有东西
    fileSplit=fileReader.Split(新字符串(){“},StringSplitOptions.None)
    '获取文本的第一部分
    fileReader=fileSplit.first
    'fileReader变量现在应该包含id为“something”的span标记的内容
    
    注意:此代码未经测试,我已在stack exchange mobile应用程序中键入,因此可能会有一些自动更正的输入错误


    您可能需要添加一些错误验证,例如确保span元素只出现一次,等等。

    我对这个答案做出以下假设

  • 您的html是有效的-即id在文档中是完全唯一的
  • 你的html标签上总是有一个id
  • 您将始终使用相同的标记(例如span)
  • 我会这样做:

    ”获取html文档
    Dim fileReader As String=My.Computer.FileSystem.ReadAllText(openFileDialog1.FileName)
    '根据span元素拆分html文本
    Dim fileSplit as string()=fileReader.Split(新字符串(){“”},StringSplitOptions.None)
    '获取文本的最后一部分
    fileReader=fileSplit.last
    “我们现在需要在结束标记后修剪所有东西
    fileSplit=fileReader.Split(新字符串(){“},StringSplitOptions.None)
    '获取文本的第一部分
    fileReader=fileSplit.first
    'fileReader变量现在应该包含id为“something”的span标记的内容
    
    注意:此代码未经测试,我已在stack exchange mobile应用程序中键入,因此可能会有一些自动更正的输入错误


    您可能需要添加一些错误验证,例如确保span元素只出现一次,等等。

    由于HTML语言有许多嵌套的标记,因此强烈建议使用HTML解析器(请参见示例)

    但是,如果HTML格式正确,使用
    Regex
    查找单个标记的内容是可能的,没有更大的问题

    这就是您需要的(函数不区分大小写):

    公共函数findtextespan(ByVal HTML作为字符串,ByVal SpanId作为字符串,ByVal LookFor作为字符串)作为字符串
    
    Dim m As Match=Regex.Match(HTML),(?强烈建议使用HTML解析器,因为HTML语言有许多嵌套的标记(参见示例)

    但是,如果HTML格式正确,使用
    Regex
    查找单个标记的内容是可能的,没有更大的问题

    这就是您需要的(函数不区分大小写):

    公共函数findtextespan(ByVal HTML作为字符串,ByVal SpanId作为字符串,ByVal LookFor作为字符串)作为字符串
    
    Dim m As Match=Regex.Match(HTML,“(?可能重复@Heinzi No我不这么认为…请再看一看,我编辑了我的问题。我看不出这有什么不同:你想从HTML文件中提取一个值,这或多或少是“解析HTML”的定义。如果我正确理解你的问题,你想要“文本”这个词从
    id
    属性或从实际的
    span
    中,或者两者都可以?如果是,您可以使用HTML解析器来检索标记(或其内容)然后用
    Regex
    找到你想要的单词。可能是@Heinzi No的重复。我不这么认为……请再看一看,我编辑了我的问题。我看不出这有什么不同:你想从HTML文件中提取一个值,这或多或少是“解析HTML”的定义。如果我正确理解了您的问题,您希望单词“text”来自
    id
    属性或来自实际的
    span
    ,或者两者都有?如果是,您可以使用HTML解析器检索标记(或其内容),然后使用
    Regex
    查找您想要的单词。
    ' get the html document
    
     Dim fileReader As String = My.Computer.FileSystem.ReadAllText(openFileDialog1.FileName)
    
    ' split the html text based on the span element
    
    Dim fileSplit as string() = fileReader.Split(New String () {"<span id=""something"">"}, StringSplitOptions.None)
    
    ' get the last part of the text
    
    fileReader = fileSplit.last
    
    ' we now need to trim everything after the close tag
    
    fileSplit = fileReader.Split(New String () {"</span>"}, StringSplitOptions.None)
    
    ' get the first part of the text 
    
    fileReader = fileSplit.first
    
    ' the fileReader variable should now contain the contents of the span tag with id "something"
    
    Public Function FindTextInSpan(ByVal HTML As String, ByVal SpanId As String, ByVal LookFor As String) As String
        Dim m As Match = Regex.Match(HTML, "(?<=<span.+id=""" & SpanId & """.*>.*)" & LookFor & "(?=.*<\/span>)", RegexOptions.IgnoreCase)
        Return If(m IsNot Nothing, m.Value, "")
    End Function