我们的CMS允许用户使用html编辑器输入文本,因此当在网页中阅读文本时,我可以这样发短信:

 <p>
 <strong>text text. more
text</strong>
 <a href="http://blabla>blabla</a> even more text...
我如何删除除文字在内的所有内容,包括和。和类似的人物?
答案 0 :(得分:6)
假设这是html(不是xhtml),我会使用HTML Agility Pack来解析它,并访问InnerText:
static void Main()
{
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(@"
 <p>
 <strong>text text. more text</strong>
 <a href=""http://blabla>blabla</a> even more text...");
string s = doc.DocumentNode.InnerText;
// s is: 
 
 text text. more text

}
答案 1 :(得分:0)
您可以将其加载到XDocument
/ XElement
对象并获取Value
属性,它实际上会返回元素的内部文本。您必须使用xml / html树的深度枚举(并在每个内部文本节点之间添加空格)为每个元素执行此操作。
<P>hello</P>
会让你“你好”<P>hello</P><P>hello</P>
将使用rootNode.innerText为您提供“hellohello” - 这就是为什么您必须使用它来为每个节点获取“hello hello”。答案 2 :(得分:0)
使用
var a = new Regex(“&lt; [^&gt;] + /?&gt;”); var v = a.Replace(“my dirty text here”,“”);
v现在将包含没有属性和标签的文本。
答案 3 :(得分:0)
我一直在使用正则表达式从网页中过滤HTML以仅检索文本本身,如下所示:
Regex.Replace(requestHtml, "<.*?>", string.Empty)
答案 4 :(得分:-1)
使用XML:
rootNode.innerText
但您的输入必须先作为规范化的XML进行检查。