HtmlAgilityPack - Ersetzen-Knoten Mit Einem Anderen Knoten
Ich habe zwei Knoten, die innere HTML geht so etwas wie dieses:
Node1:
<p>some text</p>
<p>some more text</p>
Node2:
<p>some text</p>
<p>some more text</p>
<div><p>lots of more paragraphs here</p></div>
Ich versuche zu schauen Knoten 1 im Knoten 2, um <!--more-->
tag (für WordPress-Beiträge) nach den ersten beiden Absätzen (oder was auch immer HTML-text wird geliefert in Node1).
Beiden genannten Knoten haben unterschiedliche Eltern. Wie kann ich die suchen und ersetzen oder sonst hängen Sie den <!--more-->
tag in einem solchen Fall? Ich habe versucht mit folgenden code, aber es Fehler aus:
Code:
node2.ParentNode.ReplaceChild(HtmlNode.CreateNode(node1.InnerHtml & "<!--more-->"), node1).InnerHtml
Fehler:
Node "
" was not found in the collection
Parameter name: node
Habe auch versucht chaging node1
im oldChild Teil HtmlNode.CreateNode(node1.InnerHtml)
aber das hat nicht funktioniert entweder.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, es wäre einfacher durchzuführen, einen Ersatz auf
HtmlNode.InnerHtml
Eigenschaft direkt:Trim
(, um loszuwerden, alle führenden Leerzeichen der Zeilenumbrüche), aber es geht mitReplace
.Nicht sicher, warum das ersetzen funktioniert nicht, aber es gibt eine InsertAfter-Methode, die Sie verwenden können.
<!--more-->
tag nach dem zweiten Absatz. Da node1 und node2 dynamisch sind, habe ich Sie zu freuen, ein paar tausend paar manuell zu überprüfen, wo sich einfügen.