我想请求帮助,为包含html标签的字符串编写一个小支票,并且还可以包含JavaScript标签。 我希望能够检查字符串并跳过标记内的任何内容:
<script>ignore whatever within</script>
我正在从额外的空格,制表符和换行符中删除html,而某些html具有内联JavaScript,这不是理想的,但现在我必须解决它。
这是一个示例,一个适度的方法,我想添加新的检查:
Public Shared Function MinifyStringContent(ByVal strContent As String) As String
Dim rtnStringContent As String = ""
If Not IsNothing(strContent) AndAlso strContent <> "" Then
rtnStringContent = strContent.ToString.Replace(vbCrLf, "").Replace(" ", " ").Replace(vbTab, "")
End If
Return rtnStringContent.Trim()
End Function
我可以通过将其添加到现有代码来了解如何执行此操作吗?
感谢您的帮助。
我正在尝试安装web.optimization包,但安装会回滚。我明白了:
安装失败。回滚......
Install-Package:项目不可用。
在行:1个字符:16 + Install-Package&lt;&lt;&lt;&lt; Microsoft.AspNet.Web.Optimization
CategoryInfo:NotSpecified:(:) [Install-Package],COMException
FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
关于如何解决此问题的任何想法?
谢谢。
我改变了我的方法以使用HtmlAgilityPack。 这是新代码:
Public Shared Function MinifyStringContent(ByVal strContent As String) As String
Dim doc As New HtmlAgilityPack.HtmlDocument
doc.Load(strContent)
If Not IsNothing(strContent) AndAlso strContent <> "" Then
For Each textnode In doc.DocumentNode.SelectNodes("//text()")
If Not textnode.ParentNode.Name = "script" Then
textnode.InnerHtml = textnode.InnerText.Replace(vbCrLf, "").Replace(" ", " ").Replace(vbTab, "")
End If
Next
End If
Return doc.DocumentNode.OuterHtml
End Function
但是这部分代码中断了:
doc.Load(strContent)
错误内容为:路径中的字符非法。
从BasePage.vb中的Render方法调用该方法:
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
Dim stringWriter As System.IO.StringWriter = New System.IO.StringWriter
Dim htmlWriter As HtmlTextWriter = New HtmlTextWriter(stringWriter)
MyBase.Render(htmlWriter)
Dim html As String = stringWriter.ToString()
html = Functions.MinifyStringContent(html)
writer.Write(html)
End Sub
有人可以帮我识别我做错了什么吗?
非常感谢。