2011-04-12 100 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>