是否有任何Java HTML解析器,其中生成的节点保留原始文本的索引?

Pau*_*ime 10 html java xml xpath parsing

我想将HTML文档作为XML查询(例如使用XPath),因此我需要通过某种形式的HTML清理器传递HTML.

但我还想根据查询结果修改原始源字符串.

是否有一个Java HTML解析器保留了原始源字符串的索引,所以我可以找到一个节点并修改原始字符串的正确部分?

干杯.

isl*_*lon 0

我不知道“保留原始文本的索引”部分,但Jericho是一个非常好的 HTML 解析器库。

以下是如何从 html 中删除每个跨度的示例:

public static String removeSpans(String html) {
    Source source = new Source(html);
    source.fullSequentialParse();
    OutputDocument outputDocument = new OutputDocument(source);
    List<Tag> tags = source.getAllTags();
    for (Tag tag : tags) {
        String tagname = tag.getName().toLowerCase();
        if (tagname.equals("span")) {
            //remove the <span>
            outputDocument.remove(tag);
        }
    }
    return outputDocument.toString();
}
Run Code Online (Sandbox Code Playgroud)