2010-04-14 85 views

回答

1

使用正則表達式。

String result = Regex.Replace(your_text_goes_here, @"<[^>]*>", String.Empty); 
+0

@sashaeve:這是不夠可靠的呈現HTML – James 2010-04-14 12:52:03

+1

@James:爲什麼不呢?所有這一切取決於HTML的複雜性將被用作來源。如果在例子中這麼簡單 - 這就足夠了。 – sashaeve 2010-04-14 12:55:15

+0

是的,也許如此(因爲我建議我自己),但我認爲HTML會比示例中提供的更復雜一點。 – James 2010-04-14 13:02:32

3

我會建議嘗試的HTML敏捷包.NET:

Html Agility Pack - Codeplex

Attemtping通過HTML與別的是解析,在大多數情況下,不可靠的。

不管你做什麼,DON'T TRY TO PARSE HTML WITH REGEX!

+0

我認爲不需要爲這個簡單的任務HtmlAgilityPack。看到我的答案。 – sashaeve 2010-04-14 12:51:03

+0

@sashaeve並看到我更新的答案。對於這樣一個簡單的例子,RegEx可能會工作......但這只是一個例子。我的猜測是他真正的問題要複雜得多,所以SO post解釋了爲什麼你無法用RegEx解析HTML。 – 2010-04-14 12:52:41

+0

同意你的意見。 – sashaeve 2010-04-14 12:55:50

0

您需要使用某種形式的HTML解析器。你可以使用現有的Regex或建立自己的。但是,它們並不總是100%可靠。我會建議使用像HtmlAgilityPack第三方實用程序(我用這一個,並會推薦它)

0

窮人的HTML解析器

 string s = 
      @" 
      <html> 
      <body> 
      <h1>My First Heading</h1> 
      <p>My first paragraph.</p> 
      </body> 
      </html> 
     "; 

     foreach (var item in s.Split(new char[]{'<'})) 
     { 
      int x = item.IndexOf('>'); 

      if (x != -1) 
      { 
       Console.WriteLine(item.Substring(x).Trim('>')); 
      } 
     }