我想在我的JSP页面上打印上传到我服务器上的文本文件。该文本文件包含XML标记。
我已经找到了如何从URL到字符串读取文本文件以及如何打印它。我是这样做的:
<%
URL website = new URL("this is my url");
URLConnection connection = website.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
connection.getInputStream()));
StringBuilder response1 = new StringBuilder();
//response1.append("<![CDATA[");
String inputLine;
while ((inputLine = in.readLine()) != null) {
response1.append(inputLine+"\n");
}
//response1.append("]]>");
out.println(response1.toString());
in.close();
%>
然而,当我打开我的JSP页面时,我只获取文本。我的所有XML标签都消失了。
如何打印它们?
正如你所看到的,我曾试图做CDATA,但它不起作用。
修改
正如@markbernard建议的那样,我需要使用escapeXml(String)
中的StringEscapeUtils
方法。如果你有maven,只需添加dependecy,如果没有将lib下载到你的Web-INF/lib
目录中。
我案例的用法:
String result = response1.toString();
out.println(StringEscapeUtils.escapeXml(result));
答案 0 :(得分:2)
您需要将标记转换为实体,以便显示而不是解析。 Apache Commons有一个StringEscapeUtils类,它将为您进行编码。该库可在http://commons.apache.org/proper/commons-lang/找到,您要使用的课程为https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringEscapeUtils.html