2011-04-16 9 views
1

Javaを使用してePubファイルからテキストデータを取得しようとしています。私はすでに私は抽出する必要があり、次の章のIDを見つけることができ章のIDを知っているこのファイルを開く前にJavaでHTMLの2つのリンク間でテキストを抽出します。

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

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

<br/> 

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

etc.. 

- ePubファイルのテキストは、このような何かをフォーマットされたHTMLファイル内にありますあまりにも。このため、論理的なアプローチは、SAXパーサーで解析し、次の章のリンクに達するまで各段落のテキストを抽出することだと考えました。しかし、これはかなりの仕事を証明しています。

もちろん、すべてが動的であるため、設定リンクはありません.HTMLは半厳密にフォーマットされているので、解析にはそれほど問題がないとは思われませんでした。誰もが必要なテキストを抽出するための良い方法をお勧めしますか?

解決策は、JAVAのみである必要があります。他の言語は使用できません。私はAndroidのデバイスでこれを実装するために探しています

答えて

2

まあ、あなたは、章のidsを知っている、なぜString.indexOfを使用しないでください?

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

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

単純にしてください。

+0

HTMLを取り出して文字列に変換する簡単な方法はありますか? –

+0

htmlタグも削除したいのですか? String.replaceAll( "<[^>" +> "、" ")を試してください。とにかく、それを解析することは良い考えです。 htmlを有効なxmlに変換するには、jtidyを使用します。 – mabn

+0

私は実際にInputStreamを通して文字列にロードしてから、htmlを取り出しました。あなたが私にアイデアをくれたら、かなりストレート!ありがとう、たくさんの男、私の頭をこの壁としばらく壁に打ち負かすと、なぜ私はそれを前に考えなかったのかわかりません:) –