2012-07-27 82 views
1

来源:需要更换一套带有特殊字符的字符在XSLT

<txt> 
    &lt;Data&gt; 
    &lt;div class="label"&gt; 
     &lt;span&gt;Welcome&lt;/span&gt; 
    &lt;span id="UserName"&gt;&lt;/span&gt;. 
    &lt;/div&gt; 
    &lt;/Data&gt; 

</txt> 

输出:

<Data> 
<div class="label"> 
    <span>Welcome</span> 
<span id="UserName"></span>. 
</div> 
</Data> 

规则: 我想替换

&lt; with < 
&gt; with > 

还有其他字符另外,为了简单起见,我只提到了两个。

我不确定如何搜索xslt中的字符串并将其替换。

回答

1

您可以通过使用禁用输出转义

<xsl:template match="txt"> 
    <xsl:value-of select="." disable-output-escaping="yes" /> 
</xsl:template> 

这应该给了你所需要的输出实现这一目标。

+0

是的。禁用输出转义已被弃用,并受到严厉批评,因为人们经常滥用它。但是,从XML文档的节点中提取“转义的XML”是一个用例,它是一个令人尊敬的解决方案。只要确保您的转换在禁用输出转义的环境中使用 - 也就是说,XSLT处理器正在序列化输出(而不是将输出写入DOM)的环境。 – 2012-07-27 10:41:50