簡體   English   中英

使用 vb.net 從字符串中刪除所有 div 元素

[英]Remove all div elements from string using vb.net

我想從我的字符串中刪除所有元素,包括具有class等屬性的元素。 我已經在這里檢查過,所以正則表達式顯然不是答案: RegEx match open tags except XHTML self-contained tags

我目前已經有一些正則表達式可以替換字符串中的所有標簽(注意,如果重要的話,我永遠不會解析完整的 HTML 文檔)並保留內容: Regex.Replace(s, "<[^>]*(>|$)", String.Empty) 但是,我只想刪除div標簽並保留內容。

所以我有:

<div class=""fade-content""><div><span>some  content</span></div></div>
<div>some  content</div> 

所需的 output:

<span>some  content</span>
some  content

我一直在使用正則表達式路徑,並嘗試類似: <div>.*<\/div> ,但這不包括具有屬性的 div。

如何使用 VB.NET 僅刪除div元素?

有幾種方法可以做到這一點。 一個,簡短而簡單,是以下一個:

Regex.Replace(s, "</?div.*?>", String.Empty)

這是一個例子:

    's simulates your html file
    Dim s As String = "<div class="""" fade-content""""><div><span>some  content</span></div></div>" + Environment.NewLine + "<div>some  content</div>"

    'let's store the result in s1
    Dim s1 As String = Text.RegularExpressions.Regex.Replace(s, "</?div.*?>", String.Empty)

    'output
    MessageBox.Show(s1)

Output:

在此處輸入圖像描述

這可以通過使用 WebBrowser 控件在沒有正則表達式的情況下實現。 嘗試以下操作:

提取所需數據

Private Function ExtractDesiredData(html As String) As List(Of String)
    Dim result As List(Of String) = New List(Of String)()

    'create new instance
    Using wb As WebBrowser = New WebBrowser()
        wb.Navigate(New Uri("about:blank"))

        'create reference
        Dim doc As HtmlDocument = wb.Document

        'add html to document
        doc.Write(html)

        'loop through body elements
        For Each elem As HtmlElement In doc.Body.All
            If elem.TagName = "DIV" AndAlso Not elem.InnerHtml.Contains("DIV") Then
                Debug.WriteLine($"DIV elem InnerHtml: '{elem.InnerHtml}'")

                'add
                result.Add(elem.InnerHtml)
            End If
        Next
    End Using

    Return result
End Function

用法

Dim html As String = "<div class=""fade-content""><div><span>some  content</span></div></div>"
html &= vbCrLf & "<div>some  content</div>"

Dim desiredData As List(Of String) = ExtractDesiredData(html)

資源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM