/ / Edición de HTML reemplazando texto: análisis, análisis html, jsoup

Edición de HTML reemplazando texto: análisis, html-parsing, jsoup

Estoy tratando de reemplazar el texto HTML de un idioma al texto correspondiente en otro idioma, sin cambiar el marcado y el diseño de la página. Para analizar HTML, estoy usando la biblioteca JSOUP Java.

doc.title(MTClient.translate(doc.title()));

Esto tomaría el título de la página y lo reemplazaría con la salida de cadena de texto traducida recibida por MTClient.translate (Texto a traducir). Esto funciona bien y reemplaza el título.

Pero cuando estoy haciendo lo mismo en Elementos de la página HTML, usando el siguiente código:

Elements Nodes = doc.children();
for(Element node : Nodes){
node.text(MTClient.translate(node.text()));
}

Está eliminando todo el diseño de la página y solo almacena el texto traducido simplemente en la página.

Leí los javadocs de JSOUP, que dice:

public Element text(String text)

Establecer el texto de este elemento. Cualquier contenido existente (texto o elementos) será borrado.

Y se eliminan todos los subelementos.

También probé HTMLPARSER lib en java, pero tampoco parece admitir este tipo de reemplazo.

¿Cómo reemplazo el texto?

Gracias por la ayuda de antemano.

Respuestas

0 para la respuesta № 1

Si solo desea modificar el texto, debe obtener el Elementos de texto del elemento () y establecer su texto. Los TextNodes no tienen elementos secundarios, por lo que no los reemplazará.

Elements nodes = doc.children();
for (Element node : nodes)
for (TextNode textNode : node.textNodes())
textNode.text(MTClient.translate(textNode.text()));