C# 没有任何html标记的元素的节点名是什么?
我想从html文档中删除没有html标记的文本。我正在使用LINQC# 没有任何html标记的元素的节点名是什么?,c#,html,linq,html-agility-pack,C#,Html,Linq,Html Agility Pack,我想从html文档中删除没有html标记的文本。我正在使用LINQ doc.DocumentNode.Descendants().Where(d => d.Name == "script" || d.Name == "style" || d.NodeType == HtmlNodeType.Comment)
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世界
结果,我只想说“你好”。现在我正在收听“hellohello world”
请帮我解决这个问题。
有没有办法使用LINQ命令删除此文本?我有一个想法,如果我知道没有标记的后代的名称,那么我可以通过简单地添加一个条件来解决它。让我们尝试删除任何未标记的文本:
doc.DocumentNode.Descendants()
.Where(d => d.NodeType == HtmlNodeType.Text && d.ParentNode.Equals(doc.DocumentNode))
.ToList()
.ForEach(d => d.Remove());
您希望如何处理此
ForEach(d=>d.Remove())
??由于ForEach
不返回任何内容,因此如果您尝试将其分配给变量,则不会编译。我将通过此操作删除脚本、样式和注释标记的所有节点。此代码运行良好。我已经在多个文档上测试了它。现在我只想删除前面提到的“没有标签的文本”。