我必须从包含网页源代码的 java 类编写 HTML 报告。所以问题是,一旦遇到网页的源代码,浏览器就会认为它是主报告页面上 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 标记。我尝试用<
, <
with >
, >
with&
等替换&
。但它似乎不起作用。关于如何使这成为可能的任何提示?
编辑:这是我尝试过的(a 是 pre 标签内的部分)
File aFile = new File(filename);
try {
BufferedWriter out = new BufferedWriter(new FileWriter(aFile,aFile.exists()));
a.replaceAll("<","<");a.replaceAll(">",">");a.replaceAll("\"","&;quot;");a.replaceAll("&","&");
out.write(a + "\r\n");
out.close();
}
编辑2:
所以这个正确的解决方案涉及 a=a.replaceAll(...),但要注意的另一件事是,如果我用 > 替换 < ,然后我用 & 替换 & (就像我在上面的例子中所做的那样),它会再次弄乱我的输出(< 将变为 <)。所以顺序也必须改变(replcae & first 然后 <)。