Imposta InnerText con HtmlAgilityPack

c# html-agility-pack text

Domanda

Ho provato a impostare InnerText usando quanto segue, ma non ho il permesso di impostare la proprietà InnerText:

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

Il motivo per questo è che voglio solo rimuovere il testo, non gli elementi reali:

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

Risposta accettata

Ho appena incontrato lo stesso problema me stesso. Anche se la documentazione dice che ottenerlo o impostarlo chiaramente è di sola lettura. Ma il testo interiore si applica a TUTTO tra i tag. Quindi se hai centinaia di bambini TUTTI i loro testi, compresi i tag reali, saranno lì. Penso di fare ciò che tu e io vogliamo che abbiamo bisogno di usare la proprietà Text. Ottieni il tag effettivo e utilizza la proprietà Text.

Quindi forse

HtmlTextNode.Text = "";

Si noti che è possibile impostare il testo solo se è di tipo HtmlTextNode.

o penso che potresti ottenere un risultato migliore se rimuovi il tag e tieni i nipoti.

HtmlNode.Parent.Remove(textTagYouWantRemoved, true);


Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché