Método recomendado para obtener posiciones de caracteres de todas las etiquetas HTML en un documento

StackOverflow https://stackoverflow.com/questions/9339427

  •  27-10-2019
  •  | 
  •  

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.

¿Fue útil?

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());        
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top