RemoveAllEmpty/UnnecessaryNodesFromHTML例如也应该删除(因此在这种情况下br标记被认为是不必要的)我必须使用某种递归函数吗?我在想这个:RemoveEmptyNodes(HtmlNodecontainerNode){varnodes=containerNode.DescendantsAndSelf().ToList();if(nodes!=null){foreach(HtmlNodenodeinnodes){if(node.InnerText==null||node.InnerText==""){RemoveEmptyNodes(node.ParentNode);节点.删除();}}}}但这显然行不通(stackoverflowexception)。不应该被移除的标签可以在列表中添加名称,并且由于containerNode.Attributes.Count==0(如图像),具有属性的节点也不会被移除必要节点共享的所有内容,如果是对你有用,需要了解更多C#学习教程,希望大家多多关注——staticList_notToRemove;staticvoidMain(string[]args){_notToRemove=newList();_notToRemove.Add("br");HtmlDocumentdoc=newHtmlDocument();doc.LoadHtml("测试");RemoveEmptyNodes(doc.DocumentNode);}staticvoidRemoveEmptyNodes(HtmlNodecontainerNode){if(containerNode.Attributes.Count==0&&!_notToRemove.Contains(containerNode.Name)&&string.IsNullOrEmpty(containerNode.InnerText)){containerNode.Remove();}else{for(inti=containerNode.ChildNodes.Count-1;i>=0;i--){RemoveEmptyNodes(containerNode.ChildNodes[i]);}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
