我正在尝试在文本输出中使用转义字符,因为我想在emailData标记中包围输出。我正在使用
<xsl:text><emailData></xsl:text>
在XSLT中确定这是有效的,因为我使用了一个名为Cast Iron的工具,出于某种原因,它没有将<
转换为<
而只是吐出<emailData>
< / p>
你可以看到它的图像HERE,它说明了我得到的输出。我的源代码是这样的。我怎么能在emailData标签中包装它?
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="header">
<xsl:text><emailData></xsl:text>
<xsl:text> </xsl:text>
<xsl:text>From: </xsl:text>
<xsl:value-of select="from/text()"/>
<xsl:text> </xsl:text>
<xsl:text>To: </xsl:text>
<xsl:value-of select="to/text()"/>
<xsl:text> </xsl:text>
<xsl:text>Subject: </xsl:text>
<xsl:value-of select="subject/text()"/>
<xsl:text> </xsl:text>
<xsl:text>Content-Type: </xsl:text>
<xsl:value-of select="contentType/text()"/>
<xsl:text> </xsl:text>
<xsl:text> boundary="</xsl:text>
<xsl:value-of select="boundary/text()"/>
<xsl:text>"</xsl:text>
<xsl:text> </xsl:text>
<xsl:text>MIME-Version: </xsl:text>
<xsl:value-of select="mimeVersion/text()"/>
</xsl:template>
<xsl:template match="email">
<xsl:text> </xsl:text>
<xsl:text>--</xsl:text>
<xsl:value-of select="../header/boundary/text()"/>
<xsl:text> </xsl:text>
<xsl:text>Content-Type: </xsl:text>
<xsl:value-of select="contentTypeBody/text()"/>
<xsl:text> charset="us-ascii"</xsl:text>
<xsl:text> </xsl:text>
<xsl:text>Content-Transfer-Encoding: </xsl:text>
<xsl:value-of select="contentTransfer/text()"/>
<xsl:text> </xsl:text>
<xsl:value-of select="body/text()"/>
</xsl:template>
<xsl:template match="Attachment">
<xsl:for-each select="Attachments">
<xsl:text>

</xsl:text>
<xsl:value-of select="../../header/boundary/text()"/>
<xsl:text> </xsl:text>
<xsl:text>Content-Type: </xsl:text>
<xsl:value-of select="attachmentContentType/text()"/>
<xsl:text> name="</xsl:text>
<xsl:value-of select="attachmentDescription/text()"/>
<xsl:text>"</xsl:text>
<xsl:text> </xsl:text>
<xsl:text>Content-Description: </xsl:text>
<xsl:value-of select="attachmentDescription/text()"/>
<xsl:text> </xsl:text>
<xsl:text>Content-Disposition: attachment; filename="</xsl:text>
<xsl:value-of select="atachementDisposition/text()"/>
<xsl:text>"</xsl:text>
<xsl:text> </xsl:text>
<xsl:text>Content-Transfer-Encoding: </xsl:text>
<xsl:value-of select="attachmentContentTransfer/text()"/>
<xsl:text> </xsl:text>
<xsl:value-of select="attachementBody/text()"/>
<xsl:text> </xsl:text>
<xsl:text></emailData></xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
答案 0 :(得分:1)
我会直接生成XML而不是XML编码文本,所以
变化
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="header">
<xsl:text><emailData></xsl:text>
到
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:template match="/"><emailData><xsl:apply-templates/></emailData></xsl:template>
<xsl:template match="header">
<!-- <xsl:text><emailData></xsl:text>-->
答案 1 :(得分:0)
为您的<xsl:text>
元素添加disable-output-escaping =“yes”:
<xsl:text disable-output-escaping="yes"><...></xsl:text>
将显示为
&LT; ...&GT;