用于获取文档中所有HTML标记的字符位置的推荐方法

时间:2012-02-18 07:20:10

标签: java html parsing uima

所以正则表达式may have side-effects。那么,什么是获取文档中所有HTML标记的开始和结束字符位置的首选方法?解析诸如Jsoup和NekoHTML之类的库似乎无法提供此信息,即使XMLLocator似乎也不适用,因为它只提供当前文档事件的 end

我对标签的类型或名称,其任何属性或从文本中删除任何内容不感兴趣。我只是想知道他们从哪里开始以及他们在哪里结束。

出于这个问题的目的,可以假设源HTML有效。

1 个答案:

答案 0 :(得分: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());        
}