Рекомендуемый метод для получения позиций символов всех тегов HTML в документе - PullRequest
1 голос
/ 18 февраля 2012

Так что регулярные выражения могут иметь побочные эффекты . Каков же предпочтительный метод получения начальных и конечных позиций символов всех тегов HTML в документе? Библиотеки синтаксического анализа, такие как Jsoup и NekoHTML, по-видимому, не предоставляют эту информацию, даже XMLLocator , похоже, не применяется, поскольку предоставляет только end текущего события документа. 1007 *

Меня не интересует тип или имя тега, любые его атрибуты или удаление чего-либо из текста. Я просто хочу знать, где они начинаются и где они заканчиваются.

Для целей этого вопроса можно предположить, что исходный HTML верен.

1 Ответ

1 голос
/ 18 февраля 2012

Мне было любопытно, поэтому я нашел этот парсер: 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());        
}
...