【问题标题】:Extract text between two links in HTML through Java通过Java提取HTML中两个链接之间的文本
【发布时间】:2011-04-16 23:00:19
【问题描述】:

我正在尝试使用 Java 从 ePub 文件中检索文本数据。 ePub 文件的文本位于 HTML 文件中,格式如下 -

<h2 id="pgepubid00001">Chapter I</h2>

<p>Some text</p>
<p>Another line of Text</p>

<br/>

<h2 id="pgepubid00001">Chapter II</h2>

etc..

在打开这个文件之前,我已经知道我需要提取的章节的 ID,并且也可以找到下一章节的 ID。因此,我认为一种合乎逻辑的方法是尝试在 SAX 解析器中解析它并提取每个段落中的文本,直到我到达下一章的链接。但事实证明这是一项艰巨的任务。

当然,一切都是动态的,所以没有设置链接可以转到等等。HTML 是半严格格式的,所以我没想到解析会成为这么大的问题。谁能推荐一种提取所需文本的好方法?

解决方案需要JAVA ONLY,不能使用其他语言。我希望在 Android 设备中实现此功能

【问题讨论】:

    标签: java android xml parsing epub


    【解决方案1】:

    好吧,你知道章节的 id,为什么不使用 String.indexOf 呢?

    start = text.indexOf("<h2 id=\"pgepubid00001\">");
    end = text.indexOf("<h2 id=\"pgepubid00002\">");
    
    whatYoureLookingFor = text.substring(start, end-start)
    

    保持简单。

    【讨论】:

    • 有没有一种直接的方法可以将 HTML 取出并放入一个字符串中?
    • 所以你也想删除 html 标签?试试 String.replaceAll("]+>","")。无论如何,解析它可能是个好主意。使用 jtidy 将 html 转换为有效的 xml。
    • 我实际上只是通过 InputStream 将其加载到字符串中,然后取出 html。一旦你给了我这个想法就很直接了!非常感谢,我用这个把我的头从墙上撞了一段时间,我不知道为什么我以前没有想到这一点:)
    猜你喜欢
    • 1970-01-01
    • 2017-07-24
    • 2020-12-31
    • 1970-01-01
    • 2012-10-10
    • 2018-11-02
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多