Tags entfernen , aber den Text behalten?

c# html-agility-pack

Frage

Ich verwende HtmlAgilityPack, um eine Zeichenfolge zu analysieren, die HTML-Code enthält. Ich versuche die <span> -Tags zu entfernen, behalte aber den Inhalt zwischen ihnen. Hier ist mein Code, soweit:

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;

Das Problem ist, das result fehlt "Dies ist ein Text." - Der Text zwischen den <span> -Tags. Wie kann ich erreichen, was ich versuche? Ich node.Remove , dass node.Remove tatsächlich den gesamten Knoten entfernt, ich habe nur gehofft, dass es eine Möglichkeit gibt, remove.Node sagen, aber den Inhalt behalten.

Akzeptierte Antwort

Entferne diesen Knoten vom Elternteil und behalte die Enkelkinder bei.

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


Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum