删除标签,但保留文字?
问题描述:
我使用HtmlAgilityPack来解析包含HTML代码的字符串。我试图做的是删除<span>
标签,但保留它们之间的内容。这里是我的代码,到目前为止:删除<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
缺少“这是一些文本。” - <span>
标签之间的文本。我怎样才能完成我想要做的事情?我意识到,node.Remove
实际上删除整个节点,我只是希望有一种方式,我可以说remove.Node
,但保留内容。
答
在保留孙子的同时,从父项中移除该节点。
foreach (var node in nodes)
{
node.ParentNode.RemoveChild(node,true);
}
太棒了!定时器启动后,我会立即给出答案。 – Kevin 2014-08-28 14:15:42