如何去掉内容中的HTML标签,包括标签中的内嵌标签和属性,只留下文字内容,如:
<SPAN lang=EN><FONT face="Times New Roman">测试文字</FONT></SPAN>
过滤掉只留下"测试文字",这是从数据库中读取来的,内容包括这些标签的.请高手救我,比较急.谢谢了!

解决方案 »

  1.   

    StringBuilder sb = new StringBuilder();
    bool skip = false;
    foreach(char ch in str)
    {
       if(ch == '<')
         skip = true;
       else if(ch == '>')
         skip = false;
       else
         if(!skip)
          sb.Append(ch);
    }
    return sb.ToString();
      

  2.   

    如果是只留汉字,可以用函数将字母与<>过滤掉
      

  3.   

    或者正则表达式
    string html = "<SPAN lang=EN> <FONT face=\"Times New Roman\">测试文字 </FONT> </SPAN> ";
                Regex reg = new Regex("<.*?>", RegexOptions.Compiled);
                string newString = reg.Replace(html, string.Empty);
      

  4.   

    id.innerHTML
    或是
    id.innerText
      

  5.   

    用正则:
    function nohtml(str)
        dim re
        Set re=new RegExp
        re.IgnoreCase =true
        re.Global=True
        re.Pattern="(\<.[^\<]*\>)"
        str=re.replace(str," ")
        re.Pattern="(\<\/[^\<]*\>)"
        str=re.replace(str," ")
        nohtml=str
        set re=nothing
    end function上面是ASP的,
      

  6.   


     Regex reg = new Regex(@" <[^>]*>", RegexOptions.Compiled); 
            string newString = reg.Replace(this.TextBox1.Text, string.Empty);
            Response.Write(newString);
      

  7.   

    text = Regex.Replace(text, "<(.|\\n)*?>", string.Empty);
      

  8.   

    string html = "<SPAN lang=EN> <FONT face=\"Times New Roman\">测试文字 </FONT> </SPAN> ";
    Regex reg = new Regex(@"<\/*[^<>]*>", RegexOptions.IgnoreCase);
    string newString = reg.Replace(html, string.Empty);