如何显示xml格式的jsp

时间:2011-04-12 11:35:58

标签: xml jsp

我在JSP中将XML作为字符串。但是这个XML只有一行。我想显示这个用JSP格式化的XML字符串。

例如:

<?xml version="1.0"?><catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><genre>Computer</genre><price>44.95</price>...(is going on)

我想在JSP中显示如下:

<?xml version="1.0"?>
<catalog>
    <book id="bk101">
        <author>Gambardella, Matthew</author>
        <title>XML Developer's Guide</title>
        <genre>Computer</genre>
        <price>44.95</price>...(going on)

我该怎么做?

4 个答案:

答案 0 :(得分:1)

我有完全相同的问题。我通过在将Java代码发送到JSP之前格式化我的Java代码中的XML字符串来解决它(如果需要,也可以在JSP中执行):

Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
Source source = new DOMSource(document);
StringWriter writer = new StringWriter();
Result output = new StreamResult(writer);
transformer.transform(source, output);
return writer.toString();

然后使用c:out显示它

<pre>
    <c:out value="${xmlString}" /> 
</pre>

答案 1 :(得分:0)

您需要转换&lt;,&gt;和其他在HTML HTML entities中具有特殊含义的字符。解析使用this方法。它会为你解析。

答案 2 :(得分:0)

执行xsl转换并指定选项

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" indent="yes"/>
 <xsl:strip-space elements="*"/>
 <xsl:template match="/">
  <xsl:copy-of select="."/>
 </xsl:template>

请参阅此example,然后使用您的xml

答案 3 :(得分:0)

尝试在jsp中更改“text / xml”而不是“text / html”:

<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%>

然后在没有

的情况下放入xml内容
<?xml version="1.0"?>

所以你需要这样的东西:

<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%><catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><genre>Computer</genre><price>44.95</price>...(is going on)