c# - 从 OuterHtml 获取 TextContent
问题描述
Textcontent
在某些情况下返回没有空格的文本(我正在使用控制台应用程序),所以我想确保它确实如此。我想知道是否有办法<br>
用新行替换每个,然后从修改后的 OuterHTML 中获取 TextContent?
var posts_value = Posts.Select(m => m.OuterHtml.Replace("<br>",Environment.NewLine));
我得到了想要的结果,但不确定如何从上面获取 TextContent?
谢谢!
解决方案
好吧,如果您正在寻找更接近浏览器呈现的文本的字符串,请尝试GetInnerText
使用 AngleSharp.Css 附带的扩展方法。
如果您只想获得TextContent
OP 中提到的替换,那么我建议您进行 Node 替换,然后获取TextContent
.
async Task Main()
{
var config = Configuration.Default;
var context = BrowsingContext.New(config);
var document = await context.OpenAsync(res => res.Content("<div>hello<br>there</div>"));
var before = document.Body.TextContent;
foreach (var br in document.QuerySelectorAll("br"))
{
br.Replace(document.CreateTextNode("\n"));
}
var after = document.Body.TextContent;
before.Dump();
after.Dump();
}
结果是
hellothere
hello
there
希望有帮助!
推荐阅读
- sql - SQLite 删除没有最大索引的行
- android - 如何将点击监听器添加到我的回收器视图(Android kotlin)
- repeater - 显示Repeater子字段,一个post对象值
- android - Android导航组件未解析参考
- reactjs - 不能使用 react-native-snap-carousel
- r - 在 dplyr 中使用变量列名汇总
- ruby-on-rails - Highcharts:刻度点和x轴点相距很远
- azure - 身份验证和授权后 OpenIdConnect 重定向错误
- python - 有条件的 groupby 熊猫
- android - 如何在 customView 中获得相同的 MenuItem 行为