java - Jsoup elimina SOLAMENTE las etiquetas html
tags strip (1)
¿Cuál es la forma correcta de eliminar SOLAMENTE las etiquetas html (conservar todas las etiquetas personalizadas / desconocidas) con JSOUP (NO regex)?
Entrada esperada:
<html>
<customTag>
<div> dsgfdgdgf </div>
</customTag>
<123456789/>
<123>
<html123/>
</html>
Rendimiento esperado:
<customTag>
dsgfdgdgf
</customTag>
<123456789/>
<123>
<html123/>
Traté de usar Cleaner con WhiteList.none (), pero también elimina etiquetas personalizadas.
También probé:
String str = Jsoup.parse(html).text()
Pero también elimina etiquetas personalizadas.
Esta respuesta no es buena para mí, porque el número de etiquetas personalizadas es infinito.
Es posible que desee probar algo como esto:
String[] tags = new String[]{"html", "div"};
Document thing = Jsoup.parse("<html><customTag><div>dsgfdgdgf</div></customTag><123456789/><123><html123/></html>");
for (String tag : tags) {
for (Element elem : thing.getElementsByTag(tag)) {
elem.parent().insertChildren(elem.siblingIndex(),elem.childNodes());
elem.remove();
}
}
System.out.println(thing.getElementsByTag("body").html());
Tenga en cuenta que <123456789 /> y <123> no se ajustan al estándar xml, por lo que se escapan. Otro inconveniente puede ser que tienes que anotar explícitamente todas las etiquetas que no te gustan (también conocidas como todas las etiquetas html) y puede ser sloooooow. No he visto lo rápido que esto va a funcionar.
MFG MiSt