如何在JSP页面中处理XML标记,如纯文本

时间:2014-09-09 13:23:30

标签: java html xml jsp

我想在我的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));

1 个答案:

答案 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