Извлечение текста между двумя ссылками в HTML через Java - PullRequest
1 голос
/ 17 апреля 2011

Я пытаюсь получить текстовые данные из файла ePub, используя Java.Текст файла 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..

Перед открытием этого файла я уже знаю идентификатор главы, которую мне нужно извлечь, и могу найти идентификаторСледующая глава тоже.Из-за этого я подумал, что логичным подходом будет попытка разобрать его в синтаксическом анализаторе SAX и извлечь текст в каждом параграфе, пока я не достигну ссылки в следующей главе.Но это оказывается довольно сложной задачей.

Конечно, все динамично, поэтому нет заданной ссылки для перехода и т. Д. HTML имеет полужесткий формат, поэтому я не ожидал, что синтаксический анализ будет таким большимпроблема.Кто-нибудь может порекомендовать хороший способ извлечь необходимый текст?

Решение должно быть ТОЛЬКО JAVA , другие языки не могут быть использованы.Я хочу реализовать это на устройстве Android

1 Ответ

2 голосов
/ 17 апреля 2011

Ну, вы знаете идентификаторы глав, почему бы не использовать String.indexOf?

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

whatYoureLookingFor = text.substring(start, end-start)

Будьте проще.

...