2010-10-01 17 views
7

Ho cercato di impostare InnerText utilizzando la seguente, ma io non sono autorizzato a impostare la proprietà InnerText:Set InnerText con HtmlAgilityPack

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

La ragione di questo è che voglio solo rimuovere il testo, elementi non reali:

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

risposta

5

Mi sono appena imbattuto nello stesso problema. 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.

Così forse

HtmlTextNode.Text = ""; 

prega di notare che è possibile impostare solo il testo se è di tipo HtmlTextNode.

oppure penso che potresti ottenere un risultato migliore se rimuovi il tag e mantieni i nipoti.

HtmlNode.Parent.Remove(textTagYouWantRemoved, true); 
Problemi correlati