我在公共抽象类Transformer上遇到了transform方法的问题。
我需要用Java生成电子邮件,因此我正在使用上述tranformer类,并使用XSL将XML转换为HTML,但是XML元素之一包含如下HTML代码:
<data>
<message>
<font color="red">This is font color</font><br></br>
<p>this is paragraph</p>
</message>
</data>
我使用的XSL如下:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<html>
<body>
<xsl:template match="/">
<td><xsl:value-of select="/data/message"/></td>
</xsl:template>
</xsl:stylesheet>
</body>
</html>
现在,电子邮件字体颜色红色没有出现,并且br标签也不起作用,但是某些数据从同一行出现。
有人可以帮我吗
最佳答案
xsl:value-of
仅输出节点的文本值,不会复制任何后代元素,例如br
或font
。您可能在这里使用xsl:copy-of
,它将复制它们。
试试这个XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table>
<tr>
<td><xsl:copy-of select="/data/message/node()"/></td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
关于java - 使用XSL和Java样式将xml转换为html时,包含html数据的xml元素消失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36362842/