1

poi スプレッドシートを作成できるように、apache tika を使用して html テキストと css クラス名を抽出したいと考えています。テキストを取得できますが、css クラス名を抽出するにはどうすればよいですか?

前もって感謝します ...

4

2 に答える 2

2

カスタム ハンドラを作成してみてください。startElement メソッドをオーバーライドすると、html 属性にアクセスできます。BodyContentHandler からの継承は、出発点としては非常に簡単です。ターゲットにしている要素がマップされておらず、startElement に渡されていない場合は、IdentityHtmlMapper を使用するか、独自のマッパーを作成して、ParseContext に渡すように指示する必要があります。

于 2013-09-24T17:07:57.073 に答える
0

コマンドライン java -jar tika-app.jar -h [file|port...] から Tika を実行できます (-h または --html は、HTML コンテンツの出力を提供するオプションです)。

html パーサーを使用してプログラムで行うこともできます。

Parser parser = new HtmlParser();

HTML パーサーは最初に入力 HTML ドキュメントを適切な形式の XHTML に変換し、次に含まれている要素を「安全な」サブセットにマップするため、これでは十分ではありません。デフォルトのマッピングは、次のようなものを削除しますHTML ページのテキスト コンテンツに影響を与えず、他の正規化ルールを適用する要素。このデフォルト マッピングは、ほとんどのユース ケースで良好な結果をもたらしますが、クライアントが元のHTML マークアップにより直接アクセスしたい場合があります。IdentityHtmlMapper クラスを使用して、これを実現できます。

ParseContext context = new ParseContext();
context.set(HtmlMapper.class, new IdentityHtmlMapper());

最後に、 parseメソッドを呼び出してコンテンツを取得できます。

parser.parse(stream, handler, metadata, context);

これが少し役立つことを願っています。:)

于 2013-10-02T13:33:08.187 に答える