我需要提取出现在的所有文本<body>
html 的。示例 Html 输入:-
<html>
<title>title</title>
<body>
<h1> This is a big title.</h1>
How are doing you?
<h3> I am fine </h3>
<img src="abc.jpg"/>
</body>
</html>
输出应该是:-
This is a big title. How are doing you? I am fine
我只想使用 Html Agility 来实现此目的。请不要使用正则表达式。
我知道如何加载 HtmlDocument,然后使用像“//body”这样的 xquery 我们可以获得正文内容。但是如何去除输出中显示的 html 内容呢?
提前致谢 :)
你可以利用身体的InnerText
:
string html = @"
<html>
<title>title</title>
<body>
<h1> This is a big title.</h1>
How are doing you?
<h3> I am fine </h3>
<img src=""abc.jpg""/>
</body>
</html>";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
string text = doc.DocumentNode.SelectSingleNode("//body").InnerText;
接下来,您可能想要折叠空格和新行:
text = Regex.Replace(text, @"\s+", " ").Trim();
但请注意,虽然它在这种情况下工作,但诸如hello<br>world
or hello<i>world</i>
将被转换为InnerText
to helloworld
- 删除标签。解决这个问题很困难,因为显示通常由 CSS 决定,而不仅仅是由标记决定。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)