將Html代碼轉換為Text

來源:互聯網
上載者:User
src: http://www.cnblogs.com/NoblePaul/archive/2004/09/25/46532.aspx
在抓取html頁時,需要過濾掉html代碼,擷取Html原始碼中的Text,有Regex可以解決這個問題:
VB.NET

    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' 移除所有的html標籤
    ''' </summary>
    ''' <param name="HTML">html代碼</param>
    ''' <returns></returns>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    '''     [Administrator]    2004-9-25    Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Public Function ParseTags()Function ParseTags(ByVal HTML As String) As String
        ' 使用Regex識別並移除所有的html標籤,返回過濾掉Html標籤的文本
        Dim objRegEx As System.Text.RegularExpressions.Regex
        Return objRegEx.Replace(HTML, "<[^>]*>", "")
    End Function

C#

        /**//// <summary>
        /// 移除所有的html標籤
        /// </summary>
        /// <param name="HTML">html原始碼</param>
        /// <returns></returns>
        public string ParseTags(string HTML) 
        { 
            return System.Text.RegularExpressions.Regex.Replace(HTML, "<[^>]*>", ""); 
        }

提供一簡單樣本如下:
VB.NET

    Private Sub Page_Load()Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim oStringBuilder As System.Text.StringBuilder

        oStringBuilder = New System.Text.StringBuilder
        oStringBuilder.Append(ControlChars.CrLf + "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">")
        oStringBuilder.Append(ControlChars.CrLf + "<HTML>")
        oStringBuilder.Append(ControlChars.CrLf + "    <HEAD>")
        oStringBuilder.Append(ControlChars.CrLf + "        <title>WebForm1</title>")
        oStringBuilder.Append(ControlChars.CrLf + "        <meta name=""GENERATOR"" content=""Microsoft Visual Studio .NET 7.1"">")
        oStringBuilder.Append(ControlChars.CrLf + "        <meta name=""CODE_LANGUAGE"" content=""Visual Basic .NET 7.1"">")
        oStringBuilder.Append(ControlChars.CrLf + "        <meta name=""vs_defaultClientScript"" content=""JavaScript"">")
        oStringBuilder.Append(ControlChars.CrLf + "        <meta name=""vs_targetSchema"" content=""http://schemas.microsoft.com/intellisense/ie5"">")
        oStringBuilder.Append(ControlChars.CrLf + "    </HEAD>")
        oStringBuilder.Append(ControlChars.CrLf + "    <body MS_POSITIONING=""GridLayout"">")
        oStringBuilder.Append(ControlChars.CrLf + "        <form id=""Form1"" method=""post"" runat=""server"">")
        oStringBuilder.Append(ControlChars.CrLf + "            <FONT face=""宋體"">測試</FONT>")
        oStringBuilder.Append(ControlChars.CrLf + "        </form>")
        oStringBuilder.Append(ControlChars.CrLf + "    </body>")
        oStringBuilder.Append(ControlChars.CrLf + "</HTML>")
        Response.Write(ParseTags(oStringBuilder.ToString))
    End Sub

C#        private void Page_Load(object sender, System.EventArgs e)
        {
            System.Text.StringBuilder oStringBuilder; 
            oStringBuilder = new System.Text.StringBuilder(); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "<HTML>"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "  <HEAD>"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "    <title>WebForm1</title>"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "    <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "    <meta name="vs_defaultClientScript" content="JavaScript">"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "  </HEAD>"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "  <body MS_POSITIONING="GridLayout">"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "    <form id="Form1" method="post" runat="server">"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "      <FONT face="宋體">測試</FONT>"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "    </form>"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "  </body>"); 
            oStringBuilder.Append(Microsoft.VisualBasic.ControlChars.CrLf + "</HTML>"); 
            Response.Write(ParseTags(oStringBuilder.ToString()));
        }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.