1

Java で HTML テキストを解析したい。

javax.swing.text.html.HTMLEditorKitを使用して HTML データを解析しようとしました。HTMLからデータを取得するのに役立ちました。しかし、私は次のようなHTMLデータを持っています-

<span class="TitleServiceChange" >Service Change</span>
                    <span class="DateStyle">
                     Posted: 12/16/2012  8:00PM
                    </span><br/><br/>
                  <P>

「<」「>」の 代わりに「<」「>」を囲む

上記のテキストの解析中にエラーが発生しました-

Parsing error: start.missing body ? ? at

私の問題を解決するために提案してください。前もって感謝します。

4

3 に答える 3

7

文字列に含まれるエスケープ文字の完全なセットをエスケープ解除するには、Apache Commons Langユーティリティ ライブラリを利用できます。

具体的には、特にメソッドを見つけることができるStringEscapeUtilsunescapeHtml4クラスを使用します。

于 2012-12-17T12:59:25.060 に答える
3

データの表現を取得できる場合Stringは、データを正しいタグに置き換えると問題が解決する可能性があります。

String htmlData = ...

htmlData = htmlData.replaceAll("&lt;", "<");
htmlData = htmlData.replaceAll("&gt;", ">");
于 2012-12-17T12:21:28.490 に答える
1

HTML は XML 用語で記述できます。XML には文字データの概念があり、明らかに文字で構成されています。XML で特別な意味を持つ 5><文字&"あり'ます。XMLドキュメントにリテラルを挿入する必要がある場合(この回答で行ったように)、フォームで文字参照を使用して、XMLタグを開始したくないことをブラウザーが理解できるようにします。HTML4 DTD には252 個の名前付きエンティティがあるため、読み取り可能にするために使用するのは現実的ではありません<&lt;replaceAll()ストリング。

HTML がどのように機能するかをよく理解して、データの保存とレンダリングを設計する必要があるときに Web ブラウザーのように考える必要があります。ご了承ください:

&lt;tag&gt;

とは非常に異なる意味を持ちます。

<tag>

したがって、正しい方向への助けを得るには、質問を議論する方がよいでしょう。

于 2012-12-17T12:34:22.000 に答える