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

Java 获取文档中所有HTML标记的字符位置的推荐方法,java,html,parsing,uima,Java,Html,Parsing,Uima,所以正则表达式。那么,获取文档中所有HTML标记的开始和结束字符位置的首选方法是什么?诸如Jsoup和NekoHTML之类的解析库似乎没有提供这些信息,甚至似乎也不适用,因为它只提供当前文档事件的结束 我对标记的类型或名称、任何属性或从文本中剥离任何内容都不感兴趣。我只想知道他们从哪里开始,在哪里结束 出于这个问题的目的,可以假设源HTML是有效的。我自己也很好奇,所以我找到了这个解析器: public void testJericho()引发IOException{ Source Source

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

我对标记的类型或名称、任何属性或从文本中剥离任何内容都不感兴趣。我只想知道他们从哪里开始,在哪里结束


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

我自己也很好奇,所以我找到了这个解析器:

public void testJericho()引发IOException{
Source Source=新源(新URL(“http://example.com/"));
List elementList=source.getAllegements();
for(元素:元素列表){
打印元素(元素);
}
}
公共void打印元素(元素){
List childrents=element.getChildElements();
for(元素子元素:子元素)
打印元素(子元素);
System.out.println(element.getName()+“start:”+element.getBegin());
System.out.println(element.getName()+“end:”+element.getEnd());
}

我自己也很好奇,所以我找到了这个解析器:

public void testJericho()引发IOException{
Source Source=新源(新URL(“http://example.com/"));
List elementList=source.getAllegements();
for(元素:元素列表){
打印元素(元素);
}
}
公共void打印元素(元素){
List childrents=element.getChildElements();
for(元素子元素:子元素)
打印元素(子元素);
System.out.println(element.getName()+“start:”+element.getBegin());
System.out.println(element.getName()+“end:”+element.getEnd());
}

确保它是一个有效的HTML文件。嗯,我假设这是隐含的,但我在问题中已经澄清了这一点。你的问题听起来像是达到目的的手段。您试图解决的业务问题是什么?难道“达到目的的方法”不是所有编程问题所必需的属性吗无论如何,该应用程序涉及将HTML作为Apache UIMA注释器的一部分进行注释。首先确保它是有效的HTML。嗯,我假设这是隐含的,但我在问题中已经澄清了这一点。你的问题听起来像是达到目的的手段。您试图解决的业务问题是什么?难道“达到目的的方法”不是所有编程问题所必需的属性吗无论如何,这个应用程序需要将HTML作为ApacheUIMA注释器的一部分进行注释。太棒了!我看了杰里科,但还是错过了那部电影。我只对注释标记感兴趣,而不是内容,所以我还利用了Element.getStartTag()和Element.getEndTag()函数。太棒了!我看了杰里科,但还是错过了那部电影。我只对标记而不是内容进行注释感兴趣,所以我还使用了Element.getStartTag()和Element.getEndTag()函数。
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());        
}