在某些情况下,Textcontent会返回不带空格的文本(我使用的是控制台应用程序),所以我要确保它是正确的。我想知道是否有一种方法可以用新行替换每个<br>,然后从修改后的OuterHTML中获取TextContent?
var posts_value = Posts.Select(m => m.OuterHtml.Replace("<br>",Environment.NewLine));我得到了想要的结果,但不确定如何从上面获得TextContent?
谢谢!
发布于 2020-07-01 04:44:50
好吧,如果您正在寻找一个更接近浏览器呈现的文本的字符串,那么可以尝试AngleSharp.Css附带的GetInnerText扩展方法。
如果您想要的是使用OP中提到的替换来获得TextContent,那么我建议先进行节点替换,然后再获取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希望这能有所帮助!
https://stackoverflow.com/questions/62556710
复制相似问题