2011-04-12 110 views
1

我在XML中使用XML作为字符串。但是这个XML只在一行中。我想要显示在JSP中格式化的这个XML字符串。如何显示xml格式的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>...(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

您需要将<,>和HTML中具有特殊含义的其他字符转换为它们的HTML entities。解析使用this方法。它会解析你。

+0

我明白你的意思。但我不是指如何在jsp中显示字符串。我的意思是我可以如何显示这个字符串格式化XML树结构。 – omer 2011-04-12 11:53:45

+0

@omer:从我的答案中使用方法来获取解析的字符串并在jsp中显示该字符串。它会显示整个XML。 – 2011-04-12 12:46:43

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

+0

我不想在jsp中显示xml数据。我想在jsp中显示xml文件。我怎么解释它。当用户打开页面时,用户将看不到xml数据,例如名称,国家。用户将看到所有的XML。 http://www.w3schools.com/xsl/cdcatalog.xml 点击此链接。我想要像这样展示。不是xml的内容。只是所有的XML。 – omer 2011-04-12 12:21:25

+0

试着把这行首先放在你的文件中<?xml version =“1.0”encoding =“ISO-8859-1”?> – 2011-04-12 12:48:37

0

尝试改变,而不是在你的JSP “text/html的” “文/ XML”:

<%@ 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) 
1

我有相同的问题。我解决它通过格式化在我的Java代码的XML字符串,将其发送到JSP(你可以做到这一点在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:出以显示它

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