【发布时间】:2026-02-10 23:25:03
【问题描述】:
我想从 html 文档中删除没有 html 标签的文本。我正在使用 LINQ。
doc.DocumentNode.Descendants().Where(d => d.Name == "script"
|| d.Name == "style"
|| d.NodeType == HtmlNodeType.Comment)
.ToList()
.ForEach(d => d.Remove());
我正在使用这段代码。我想在 LINQ 中再添加一个条件,这样我就可以删除任何没有标签的文本。
<div>hello</div>hello world
结果,我只想要“你好”。现在我得到“hellohello world”。
请帮我解决这个问题。 有没有办法通过使用 LINQ 命令删除此文本?我有一个想法,如果我知道没有标签的后代的名字,那么我可以通过简单地再添加一个条件来解决它。
【问题讨论】:
-
你想用这个
ForEach(d => d.Remove())做什么??由于ForEach不返回任何内容,因此如果您尝试将其分配给变量,则无法编译。 -
我正在删除脚本、样式和注释标签的所有节点。这段代码工作正常。我已经在多个文档上对其进行了测试。现在我只想按照问题删除“没有标签的文本”。
标签: c# html linq html-agility-pack