2010-10-01 22 views
7

He tratado de establecer InnerText usando lo siguiente, pero no se me permite establecer la propiedad InnerText:Conjunto InnerText con HtmlAgilityPack

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

La razón de esto es que sólo quiero para eliminar texto, no elementos reales:

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

Respuesta

5

Me acabo de encontrar con el mismo problema. Aunque la documentación dice get o set it claramente es de solo lectura. Pero el texto interno se aplica a TODO entre las etiquetas. Entonces, si tienes cientos de niños, TODO el texto, incluidas las etiquetas reales, estará allí. Creo que para hacer lo que usted y yo queremos necesitamos usar la propiedad Text. Obtenga la etiqueta real y use la propiedad Text.

Así que tal vez

HtmlTextNode.Text = ""; 

Tenga en cuenta que sólo se puede establecer el texto si es de tipo HtmlTextNode.

o creo que puede obtener un mejor resultado si solo quita la etiqueta y se queda con los nietos.

HtmlNode.Parent.Remove(textTagYouWantRemoved, true);