Удалить теги, но сохранить текст?

c# html-agility-pack

Вопрос

Я использую 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 отсутствует. «Это какой-то текст». - текст между тегами <span> . Как я могу выполнить то, что я пытаюсь сделать? Я понимаю, что node.Remove фактически удаляет весь узел, я просто надеялся, что есть способ, который я могу сказать remove.Node , но сохранить содержимое.

Принятый ответ

Удалите этот узел из родителя, сохранив внуков.

foreach (var node in nodes)
{
    node.ParentNode.RemoveChild(node,true);
}


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow