テキストの一部として山括弧を含むhtml文書のテキストのみを解析しようとしています。私はJsoupの解析機能を使用しています構文解析時にJsoupがテキスト内の山括弧を消去しないようにする方法
1. <someUnicodeString>
2. <foo 2012.12.26.>
3. <123 2012.12.26.>
4. <@ 2012.12.26.>
5. foobarbar
:私は解析されたテキストファイルの結果はこのようになりたい
<html>
<head></head>
<body>
<div>
<p>1. <someUnicodeString></p>
<p>2. <foo 2012.12.26.></p>
<p>3. <123 2012.12.26.></p>
<p>4. <@ 2012.12.26.></p>
<p>5. foobarbar</p>
</div>
</body>
</html>
:
例えば、htmlファイルには、次のようになりますこれを実現するには、以下に示すように、
Document doc = null;
try {
doc = Jsoup.parse(new File(path), "UTF-8");
doc.outputSettings(new Document.OutputSettings().prettyPrint(false));
doc.outputSettings().escapeMode(EscapeMode.xhtml);
//set line breaks in readable format
doc.select("br").append("\\n");
doc.select("p").prepend("\\n\\n");
String bodyText = doc.body().html().replaceAll("\\\\n", "\n");
bodyText = Jsoup.clean(bodyText, "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false));
File f = new File(textFileName+".txt");
f.getParentFile().mkdirs();
PrintWriter writer = new PrintWriter(f, "UTF-8");
writer.print(Parser.unescapeEntities(bodyText, false));
writer.close();
} catch(IOException e) {
//Do something
e.printStackTrace();
}
しかし、Jsoupが解析処理を終えると、角括弧の後に文字が続くタグが追加されます。結局、私が解析する際に、テキストの内側に角括弧を消去からJsoupを防ぐことができますどのような結果
1.
2.
3. <123 2012.12.26.>
4. <@ 2012.12.26.>
5. asdasd
を生産
<p>1. <someUnicodeString></someUnicodeString></p>
<p>2. <foo 2012.12.26.></foo></p>
<p>3. <123 2012.12.26.></p>
<p>4. <@ 2012.12.26.></p>
<p>5. foobarbar</p>
?
また、特定の角かっこがhtml要素ではないことをJsoupに認識させる方法がありますか? (たぶん正規表現を使用していますか?)
私はJsoupを初めて使用しており、何か助けに感謝します。 ありがとうございます。
あなたのHTMLは無効と思われます。 [この回答](http://stackoverflow.com/a/10462413/1992780)を見てください。 –
コメントありがとうございます!私は良い要素は、要素を反復して、 "<"にテキスト内の "<"文字を変換してから解析を開始することです。 – Joon