Setze InnerText mit HtmlAgilityPack

c# html-agility-pack text

Frage

Ich habe versucht, InnerText wie folgt zu setzen, aber ich darf die InnerText-Eigenschaft nicht setzen:

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

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

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

Akzeptierte Antwort

Ich bin gerade auf dasselbe Problem gestoßen. 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 den Text nur einstellen können, wenn er vom Typ HtmlTextNode ist.

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

HtmlNode.Parent.Remove(textTagYouWantRemoved, true);


Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow