使用visual basic
我有一个包含 HTML 的字符串。里面可能有很多 img 标签,但是我想删除一个带有特定 alt 属性的 img 标签。
如果包含 'badImage' 作为 alt 属性,我如何从字符串中删除整个 img 标签?我仍然想保留可能在字符串内的任何其他 img 标签。
Dim myString as string = "<html><body><span>some text here..</span><img src='#' alt='goodImage'/><span>more text...</span><img src='#' alt='badImage'/></body></html>
到目前为止,我有以下代码,但它从字符串中删除了所有 img 标记,而我只想删除带有 'badImage' alt 属性的 img 标记。这可能吗?
Dim imgRegex As New Regex("<img[^>]*>", RegexOptions.IgnoreCase)
myString = myString.Replace(bodyContent, "")
请在VB.Net中回答。感谢您的帮助!
答案 0 :(得分:0)
希望 html 源代码是格式良好的 html/xml/[任何标记语言],您可以通过使用 XmlDocument
读取源代码来删除坏标签,然后通过“{{1 }}“ 属性。
一点代码演示:
alt
那么:
Function ClearBadImgTags(source As String) As String
Dim xDoc As XmlDocument = New XmlDocument
Try
xDoc.LoadXml(source)
Dim badImgs As IEnumerable(Of XmlElement) = From el In xDoc.GetElementsByTagName("img")
Select img = CType(el, XmlElement)
Where img.HasAttribute("alt") AndAlso img.Attributes("alt").Value = "badImage"
For i As Integer = 0 To badImgs.Count - 1 : badImgs(i).ParentNode.RemoveChild(badImgs(i)) : Next
Return xDoc.OuterXml
Catch ex As Exception
Stop 'Bad XML or something go wrong
End Try
Return ""
End Function