2010-05-07 103 views
0

我正在嘗試用xslt轉換創建一個基於html的模板。轉換器返回的字符串結果是完全正確的。但是當我嘗試將其發送到顯示器時,瀏覽器沒有解釋它。輸出看起來像<html><body>...</body></html>。 當我查看源顯示&lt;html&gt;...如何解決它?請幫助。 在此先感謝XSLT問題

+0

你能告訴我們你的樣式表嗎? – 2010-05-07 10:32:28

回答

1

您是否正確指定了輸出方法?應設置爲HTML:

<xsl:output method="html" encoding="UTF-8" /> 
+0

是的,我使用了輸出方法'html'。當我在服務器控制檯中打印字符串時,它正確地打印html標籤,但在瀏覽器中它不被解釋。 – sindhu 2010-05-07 11:03:22

+0

@sindhu:你能展示你的樣式表和你用來調用它並保存輸出的代碼嗎? – 2010-05-07 11:27:01

0

<xsl:output value="html"/> <xsl:template match="mail[@type='pinReset']">
<html><body> <xsl:variable name="userService" select="java:new()"/> <i><u>Message body </u><xsl:value-of select="mailMessage/mail/body/prefix"/></i> <a><xsl:attribute name="href"> <xsl:value-of select="java:getResetPinUrl($userService)"/></xsl:attribute> reset pin </a> <i><xsl:value-of select="mailMessage/body/suffix"/></i><br/>
</body> </html> </xsl:template> </xsl:stylesheet>

這是我的XSL。

public String getXformedString(int type){ String xFormedString = ""; String xsltFile = "D:\\SitesContent\\sitescontent_war\\JavaSource\\com\\tgt\\mobile\\gc\\controller\\email.xsl"; String xmlFile="D:\\SitesContent\\sitescontent_war\\JavaSource\\com\\tgt\\mobile\\gc\\controller\\emailBody.xml"; StringWriter stWr = new StringWriter(); File xsltfile = new File(xsltFile); File xmlfile = new File(xmlFile); Source xmlSource = new StreamSource(xmlfile); Source xsltSource = new StreamSource(xsltfile); Result result = new StreamResult(stWr); TransformerFactory transFact = TransformerFactory.newInstance(); try { Transformer transformer= transFact.newTransformer(xsltSource); transformer.setParameter("type",new Integer(type)); transformer.transform(xmlSource, result); xFormedString = stWr.toString(); System.out.println("Str->"+xFormedString); } catch (TransformerConfigurationException e) { // TODO Auto-generated catch block
e.printStackTrace(); } catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } return xFormedString; }

這是代碼從XML和XSLT形成的字符串。