2010-10-01 8 views
7

Ich habe versucht, Innertext unter Verwendung der folgenden zu setzen, aber ich bin nicht die Innertext Eigenschaft zu setzen erlaubt:Set mit Inner HtmlAgilityPack

node.InnerText = node.InnerText.Remove(100) + ".."; 

Der Grund dafür ist, dass ich nur Text entfernen möchten, nicht tatsächliche Elemente:

<div> 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    <img src="" /> 
</div> 

Antwort

5

Ich habe gerade in das gleiche Problem selbst gerannt. Obwohl die Dokumentation sagt erhalten oder gesetzt ist es eindeutig schreibgeschützt. Aber innerer Text gilt für ALLES zwischen den Tags. Wenn Sie also Hunderte von Kindern haben, wird ALLER Text einschließlich der tatsächlichen Tags da sein. Ich denke, um zu tun, was Sie und ich wollen, müssen wir die Eigenschaft Text verwenden. Rufen Sie das tatsächliche Tag ab und verwenden Sie die Text-Eigenschaft.

Also vielleicht

HtmlTextNode.Text = ""; 

Bitte beachten Sie, dass Sie nur den Text eingeben, wenn sie vom Typ HtmlTextNode ist.

oder ich denke, Sie könnten ein besseres Ergebnis erhalten, wenn Sie nur das Tag entfernen und die Enkelkinder behalten.

HtmlNode.Parent.Remove(textTagYouWantRemoved, true);