我有一个将XML转换为PLSQL的XSLT
我需要逃避角色:> (大于)
例如:
P_C710_INT_PROFILE_ID =>
我尝试使用>
并将字符放在xsl:text中,没有运气
有什么想法吗?
由于
答案 0 :(得分:7)
感谢大家,但正确的答案是:
<xsl:text disable-output-escaping="yes">></xsl:text>
答案 1 :(得分:4)
没有问题。这个样式表(空):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
</xsl:stylesheet>
输入:
<text>P_C710_INT_PROFILE_ID =></text>
输出:
P_C710_INT_PROFILE_ID =>
编辑:因为您的问题不明确,我正在添加一个解决方案,以防您想在xsl:output / @ method =“text”声明下输出字符实体。
此样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="text()" name="text">
<xsl:param name="text" select="."/>
<xsl:if test="$text != ''">
<xsl:variable name="first" select="substring($text,1,1)"/>
<xsl:choose>
<xsl:when test="$first = '>'">&gt;</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$first"/>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="text">
<xsl:with-param name="text" select="substring($text,2,(string-length($text)-1) div 2 + 1)"/>
</xsl:call-template>
<xsl:call-template name="text">
<xsl:with-param name="text" select="substring($text,(string-length($text)-1) div 2 + 3)"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
输出:
P_C710_INT_PROFILE_ID =>
有关
答案 2 :(得分:1)
我也在努力解决这个问题,即使在更改输出方法并添加了disable-output-escaping属性之后,它仍然无法正常工作。
然后我查看了我的源代码,我意识到我正在使用XmlTextWriter和转换结果,而XmlTextWriter正在应用输出转义。一旦我将其切换为只使用StringWriter,输出就是正确的。