2009-10-05 6 views
17

をテキストに、あなたは、オープンソースのJavaライブラリをお勧めすることができ(好ましくはASL/BSD/LGPLライセンス)プレーンテキストにHTMLを変換する - 、エンティティ(&、 を変換し、すべてのタグをきれいに等)と<br>とテーブルを正しく処理します。オープンソースのJavaライブラリ変換

詳細

私は、文字列としてHTMLを持って、ウェブからそれをフェッチする必要はありません。また、私が探していることは、このような方法は次のとおりです。

String convertHtmlToPlainText(String html) 
+1

また[jsoup(http://jsoup.org/)(http://stackoverflow.com/questions/9631477/retrieve-text-from-html-file-in-java)[ここ]記載されています、これはリベラルな[MITライセンス](http://jsoup.org/license)の下で配布されています。ちなみに、jsoupはあなたが 'Jsoup.parse(HTML)の.text()されているHTML5 – cubanacan

+0

をここでサポートしています' – cubanacan

+0

、少なくともそれは私が求めてきました何をしません文書に従って(HTML操作、プレーンテキストにページをしない変換) –

答えて

17

お試しJerichoそれはあなたがやりたいだろうよう

TextExtractorクラスが聞こえます。申し訳ありませんが、私は新しいユーザーですが、ホームページを少しスクロールしてリンクしているので、2番目のリンクを投稿することはできません。

+0

このクラスへのリンクは次のとおりです:http://jericho.htmlparser.net/docs/javadoc/net/htmlparser/jericho/TextExtractor.html –

+5

ありがとう! –

+0

怠け者のために:String plainText = newソース(html).getRenderer()。toString(); "hello"は "hello"の代わりに "<b> hello </b >"に変換されます。 –

3

HtmlUnitが、それもJavaScriptの/アヤックスを処理した後のページを示しています。私はTagSoup使用

+0

あります知って良い、http://htmlunit.sourceforge.net/apidocs/com/gargoylesoftware/ [)( –

+0

チェック.asTextをテキストではありませんhtmlunit/html/DomNode.html#asText()] –

+0

ありがとうございます。私は最後にJerichoに行きましたが、HtmlUnitを念頭に置いておきます。 –

0

は、それはいくつかの言語で利用可能で、HTMLと本当に良い仕事は「野生で」が見つかりません。 HTMLまたはXMLのクリーンアップ版が生成され、DOM/SAXパーサーで処理できます。

+0

ありがとうございます。プレーンテキストの最終結果が必要です –

+0

XMLになったら、SAXパーサーを実装してテキストノードのみを出力できます。'Character'以外のすべてのメソッドのDefaultHandlerノーオペレーションの実装) –

-1

私は他の道を行くためにApache Commons Langを使用しました。しかし、それはあなたがStringEscapeUtils経由で必要なものを行うことができるように見えます。

+0

htmlToText()メソッドが見つかりません - HTMLがエスケープされていますが、実際にはレンダラーを最後に使用しました –

+0

ああ、はい、プレーンテキストが欲しいとは思えませんでした。これは本当です。 – firefly2442

1

blikiエンジンはこれを2段階で実行できます。 nediawikiテキストは、すでにかなりプレーンテキスト形式ですが、さらに

  • プレーンテキストへのMediawikiテキストに変換するにはどのようにそれを変換することができます - - あなたの目標をMediawikiのテキストにHTMLに変換する方法info.bliki.wiki/Home

    1. を参照してください。

    それはこのように、コードのいくつかの7-8の線になります。

    // html to wiki 
    import info.bliki.html.HTML2WikiConverter; 
    import info.bliki.html.wikipedia.ToWikipedia; 
    // wiki to plain text 
    import info.bliki.wiki.filter.PlainTextConverter; 
    import info.bliki.wiki.model.WikiModel; 
    ... 
    String sbodyhtml = readFile(infilepath); //get content as string 
        HTML2WikiConverter conv = new HTML2WikiConverter(); 
        conv.setInputHTML(sbodyhtml); 
    String resultwiki = conv.toWiki(new ToWikipedia()); 
        WikiModel wikiModel = new WikiModel("${image}", "${title}"); 
    String plainStr = wikiModel.render(new PlainTextConverter(false), resultwiki); 
    System.out.println(plainStr); 
    

    Jsoupはこの単純行うことができます。

    import org.jsoup.Jsoup; 
    import org.jsoup.nodes.Document; 
    ... 
    Document doc = Jsoup.parse(sbodyhtml); 
    String plainStr = doc.body().text(); 
    

    をが、結果には、すべての段落の書式を失います - - 改行はありません。

  • 関連する問題