![](/img/trans.png)
[英]How do I get vb.net to add all links within a particular div class from a webpage?
[英]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.