2013-08-01 14 views
5

準HTMLテキストは、次のようになります。 Simple<br> text <b>simple</b> text simple <BR><BR>text simple text、それを解析してdom documentを作成したいと思います。javaの疑似準HTMLテキストの解析方法は?

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
InputSource source = new InputSource(new StringReader(
Document doc = builder.parse(source); 

エラーが発生します:org.xml.sax.SAXParseException; The element type "br" must be terminated by the matching end-tag

私はしたくないが、すべての<br><br></br>、任意の解決策やアドバイスにより置き換える私はこれをしようとすると、しかし、問題は、閉じられていないタグているのですか?

+4

おそらくそれをDOMに取り込むことはできません。 [jSoup](http://jsoup.org/)のような寛大なHTMLパーサを使用する必要があります.HTMLを試して修正します。ウェブブラウザのようなビットです。 –

+0

私はそれがHTMLEditorKitで行うことができると思います... – linski

+0

@BoristheSpider jSoupの必要はありませんが、標準のJavaで行うことができます、私の答えを参照してください。 – linski

答えて

3

jsoupを使用して使いやすさをお楽しみください。

2

整形式のHTMLをすべて書き直す必要があります。基本的にはテキストを通り、すべての開始タグのリストを作成します。対応する終了タグを見つけたら、それをリストから削除することができます。あなたが通過しても、このリストにまだエントリがある場合、あなたはそれがうまく形成されていないことを知っています。

問題は、閉じられていないタグを挿入する場所です。次の単語の直後に、対応する終了タグを挿入することができます。あなたの場合、brタグをbr/tagで置き換えることができます。このようにして、文字列はドキュメントの内容を返します。

string = string.replace("<br>", "<br />"); 
関連する問題