我在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)
我该怎么做?
答案 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)