XSLT的问题

时间:2010-05-07 10:29:22

标签: xslt

我正在尝试使用xslt转换创建基于html的模板。转换器返回的字符串结果非常好。但是当我尝试将其发送到显示时,浏览器不会解释它。输出看起来像<html><body>...</body></html>。 当我查看来源时它正在显示&lt;html&gt;...我该如何解决?请帮助。 提前致谢

2 个答案:

答案 0 :(得分:1)

您是否正确指定了输出方法?它应该设置为HTML:

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

答案 1 :(得分: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获取形成的字符串的代码。