Establecer texto interno con HtmlAgilityPack

c# html-agility-pack text

Pregunta

He intentado configurar InnerText utilizando lo siguiente, pero no tengo permiso para establecer la propiedad InnerText:

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

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

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

Respuesta aceptada

Acabo de encontrarme con el mismo problema. Aunque la documentación dice que obtenerlo o configurarlo claramente es de solo lectura. Pero el texto interno se aplica a TODO entre las etiquetas. Así que si tienes cientos de niños, TODOS sus textos, incluidas las etiquetas reales, estarán allí. Creo que para hacer lo que tú y yo queremos, necesitamos usar la propiedad Text. Obtener la etiqueta real y utilizar la propiedad de texto.

Así que tal vez

HtmlTextNode.Text = "";

Tenga en cuenta que solo puede establecer el texto si es de tipo HtmlTextNode.

o creo que podría obtener un mejor resultado si simplemente quita la etiqueta y se queda con los nietos.

HtmlNode.Parent.Remove(textTagYouWantRemoved, true);


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué