Ich habe einige Eingabe-Tags, die Platzhalter sind, die ich mit etwas HTML ersetze. Die meiste Zeit, die ich durch HTML ersetze, ist nur ein Tag, was einfach genug ist:
HtmlNode node = HtmlNode.CreateNode(sReplacementString);
inputNode.ParentNode.ReplaceChild(node, inputNode);
Wenn ich jedoch inputNode
durch zwei oder mehr Knoten HtmlNode.CreateNode(sReplacementString)
liest HtmlNode.CreateNode(sReplacementString)
nur den ersten Knoten. Gibt es eine Möglichkeit zu ersetzen, wo sReplacementString
mehrere Tags ist?
Soweit ich weiß, gibt es keinen direkten Weg dazu. HtmlNode.CreateNode
Methode erstellt einen einzelnen Knoten aus dem HTML-Snippet. Wenn mehrere Knoten vorhanden sind, wird nur der erste Knoten erstellt.
sReplacementString
, können Sie einen temporären Knoten erstellen, seine sReplacementString
Knoten aus sReplacementString
und diese inputNode
Knoten direkt nach dem Knoten inputNode
anhängen und schließlich den inputNode
entfernen.
var temp = doc.CreateElement("temp");
temp.InnerHtml = sReplacementString;
var current = inputNode;
foreach (var child in temp.ChildNodes)
{
inputNode.ParentNode.InsertAfter(child, current);
current = child;
}
inputNode.Remove();