使用& #nbsp;防止XSLT替换

时间:2015-06-23 15:14:31

标签: xslt

如何防止XSLT将 替换为&#nbsp;

input.xml中

<span style='font:7.0pt "Times New Roman"'>&#160;&#160;&#160;&#160;&#160;

的Output.xml

<span style="font: 7.0pt&amp;#34;Times New Roman&amp;#34;">&nbsp;&nbsp;&nb

如果我使用<xsl:output method="xml"/>,那么&#160;将替换为我想要避免的。

output.xml with method =“xml”

<span style="font: 7.0pt&amp;#34;Times New Roman&amp;#34;">Â Â Â Â Â Â Â Â Â 

另外如何防止它用&amp;#34;

替换双引号

我正在尝试在链中使用多个XSLT文件,但首先XSLT会像上面所示那样混淆代码。

我还使用以下代码允许我在原始HTML中使用&#nbsp;,但我不知道如何将其放入生成的XML文件中,在这种情况下我不会让{{1}在output.xml中

&#nbsp;

我一直试图解决这个问题几个小时。

2 个答案:

答案 0 :(得分:2)

如果输出方法是HTML,Saxon只会将&nbsp;注入输出。如果管道中的后续步骤期望XML,那么显然不应该这样做。但是如果随后的步骤需要XML,那么他们应该没有任何困难,因为NBSP角色本身就会出现(未转义)。

Saxon当然不会将NBSP输出为“”,但是如果您使用不了解UTF-8的软件查看它,它将输出一个看起来像“”的UTF-8字符。

如果你想更多地控制非ascii字符(你实际上不需要)的表示,那么你可以尝试设置encoding =“us-ascii”,或者你可以尝试saxon:character-representation属性在xsl:output中。

答案 1 :(得分:1)

  

如果我使用<xsl:output method="xml"/>,则替换为Â   我也想避免。

尝试:

<xsl:output method="xml" encoding="ascii"/>

http://xsltransform.net/bdxtqJ