我使用HtmlAgilityPack来解析包含HTML代码的字符串。我尝试做的是删除<span>
标记,但保留它们之间的内容。到目前为止,这是我的代码:
var text = @"<div><span>This is some text.</span>More text here.</div>
<div>I have a question.<span>Hi</span></div>";
var doc = new HtmlDocument();
doc.LoadHtml(text);
var nodes = doc.DocumentNode.SelectNodes("//span");
foreach (HtmlNode node in nodes)
{
node.Remove();
}
String result = doc.DocumentNode.InnerHtml;
问题是,result
缺少&#34;这是一些文字。&#34; - <span>
标记之间的文字。我怎样才能完成我想要做的事情?我意识到node.Remove
实际上删除了整个节点,我只是希望有一种方式可以说remove.Node
,但保留内容。
答案 0 :(得分:3)
在保留孙子孙女的同时从父母那里删除该节点。
foreach (var node in nodes)
{
node.ParentNode.RemoveChild(node,true);
}