2013-01-09 49 views
1

我有一个textareatinyMCE文本编辑器使其成为RichTextEditor。我想提取所有标题(H1,H2等)文本没有风格和格式。
假设txtEditor.InnerText给我看重象下面这样:从HTML文本提取标题文本

<p><span style="font-family: comic sans ms,sans-serif; color: #993366; font-size: large; background-color: #33cccc;">This is before heading one</span></p> 
<h1><span style="font-family: comic sans ms,sans-serif; color: #993366;">Hello This is Headone</span></h1> 
<p>this is before heading2</p> 
<h2>This is heading2</h2> 

我想只有标题标签的文本列表?任何形式的建议和指导将不胜感激。

回答

2

使用HtmlAgilityPack,然后很容易:

var doc = new HtmlDocument(); 
    doc.LoadHtml(txtEditor.InnerText); 
    var h1Elements = doc.DocumentNode.Descendants("h1").Select(nd => nd.InnerText); 
    string h1Text = string.Join(" ", h1Elements); 
+0

我在Web应用程序中使用它, Asp.net。我没有找到HtmlDocument类 – Arshad

+0

HtmlAgilityPack是未包含在标准库中的开源lib,下载它,链接在回答中,或者更好地使用NuGet –

+0

isnt可能没有dll吗? – Arshad

0

引用Regular Expression to Read Tags in HTML
我认为,这是接近你在找什么:

String h1Regex = "<h[1-5][^>]*?>(?<TagText>.*?)</h[1-5]>"; 

MatchCollection mc = Regex.Matches(html, h1Regex); 
+0

不要使用正则表达式解析HTML ... http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained - 标签/ 1732454#1732454 – Matt

+0

尼斯链接。我现在正在研究HtmlAgilityPack,看起来很有趣。 –