2012-02-18 6 views
1

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

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

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

+0

Убедитесь, что это действительный HTML первый –

+0

Хм, я предполагал, что подразумевалось, но я уточнил, что в вопросе. – cqcallaw

+1

Ваш вопрос звучит как средство для достижения цели. Какую бизнес-проблему вы пытаетесь решить? – Bohemian

ответ

1

мне было любопытно, сам, так что я нашел этот анализатор: 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());   
} 
+0

Блестящий! Я посмотрел на Джерико, но сумел пропустить эту особенность. Меня интересуют только аннотации тегов, а не содержимого, поэтому я также использую функции Element.getStartTag() и Element.getEndTag(). – cqcallaw