Método recomendado para obtener posiciones de caracteres de todas las etiquetas HTML en un documento
Pregunta
Así que expresiones regulares puede tener efectos secundarios. ¿Cuál es, entonces, el método preferido para obtener las posiciones de caracteres de inicio y finalización de todas las etiquetas HTML en un documento? Analizar bibliotecas como Jsoup y Nekohtml no parecen proporcionar esta información, incluso Xmllocator no parece aplicarse, ya que solo proporciona el final del evento de documento actual.
No estoy interesado en el tipo o nombre de la etiqueta, ninguno de sus atributos o eliminar cualquier cosa del texto. Solo quiero saber dónde comienzan y dónde terminan.
Para los propósitos de esta pregunta, se puede suponer que el HTML de origen es válido.
Solución
Yo mismo tenía curiosidad, así que encontré este analizador: http://jericho.htmlparser.net/
public void testJericho() throws IOException{
Source source=new Source(new URL("http://example.com/"));
List<Element> elementList=source.getAllElements();
for (Element element : elementList) {
printElement(element);
}
}
public void printElement(Element element) {
List<Element> children = element.getChildElements();
for(Element child: children)
printElement(child);
System.out.println(element.getName() + " start: " + element.getBegin());
System.out.println(element.getName() + " end: " + element.getEnd());
}