2017-02-21 3 views
0

Ich bin mit Html Agility-Pack (1.4.9.5) einen Knoten innerhalb einer bestimmten Klasse zu entfernen:Knoten einzelner Kind Eltern in html Agilität Pack

var document = new HtmlDocument(); 
document.LoadHtml("<p><div class=\"remove-it\"></div></p>"); 

var nodesToRemove = document.QuerySelectorAll(".remove-it"); 
if (nodesToRemove != null) 
{ 
    foreach (var node in nodesToRemove) 
    { 
     node.Remove(); 
    } 
} 

var res = document.DocumentNode.OuterHtml; 

Das Problem ist, dass res am Ende ist gleich:

<p> 

aber es sein sollte:

<p></p> 

Wie kann ich dieses Problem beheben?

+0

Was enthält 'nodesToRemove'? – TheLethalCoder

+0

'nodesToRemove' enthält nur einen Knoten: das div im Absatz – Drakkin

Antwort

1

Fast da! Sie vermissen HtmlNode.ElementsFlags["p"] = HtmlElementFlag.Closed; vor document.LoadHtml("<p><div class=\"remove-it\"></div></p>");.

Das bedeutet, dass das Element beim Analysieren des Dokuments automatisch geschlossen wird.

+0

Das war's! Es löst mein Problem. – Drakkin

Verwandte Themen