1

Web ページのソース コードを含む Java クラスから HTML レポートを作成する必要があります。問題は、Web ページのソースが検出されるとすぐに、ブラウザーによってメイン レポート ページの html タグの末尾であると見なされ、出力が正しくレンダリングされないことです。以下に例を示します。

<html>
    <body>
        <li>
           <pre>
           <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
           <html>
           <head>
           <title>404 Not Found</title>
           </head><body>
           <h1>Not Found</h1>
           The page was not found on this server.
           </body>
           </html> 
           </pre>
        </li>
    </body>
</html>

pre タグ内のすべてを、html マークアップではなく通常のテキストとして取得する必要があります。、、などに置き換え<てみましたが、うまくいかないようです。これを可能にするためのヒントはありますか?&lt;>&gt;&&amp;

編集:これは私が試したものです(aはpreタグ内の部分です)

File aFile = new File(filename);
try {
    BufferedWriter out = new BufferedWriter(new FileWriter(aFile,aFile.exists()));  
    a.replaceAll("<","&lt;");a.replaceAll(">","&gt;");a.replaceAll("\"","&;quot;");a.replaceAll("&","&amp;");
    out.write(a + "\r\n");    
    out.close();
} 

編集2:

したがって、この正しい解決策にはa = a.replaceAll(...)が含まれていましたが、注意すべきもう1つのことは、<を>に置き換え、後で&を&に置き換えると(上記の例のように)、再び私の出力を台無しにします(<は<になります)。そのため、順序も変更する必要があります (replcae & 最初、次に <)。

4

5 に答える 5

1

まあ..うまくreplaceAllいくかもしれません..しかし、私は常にStingEscapeUtilsを..として使用することを好みます.

a = StringEscapeUtils.escapeHtml4(a)
于 2013-05-12T13:50:40.933 に答える