Java 转换后如何保留特殊字符?

Java 转换后如何保留特殊字符?,java,xml,xslt,special-characters,transformation,Java,Xml,Xslt,Special Characters,Transformation,我正在Java程序中使用XSL进行XML转换。这是示例XML <root> <head>Heading goes here</head> <middle>Some text goes here</middle> <body>Body goes here &#x2019; with special characters</body> </root> 航向在这里 这里有一些文字 身体在这

我正在Java程序中使用XSL进行XML转换。这是示例XML

<root>
 <head>Heading goes here</head>
 <middle>Some text goes here</middle>
 <body>Body goes here &#x2019; with special characters</body>
</root>

航向在这里
这里有一些文字
身体在这里’;有特色
XSL有一个标识模板,它只删除一个
元素

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
  <!-- the identity template -->
  <xsl:template match="@* | node()" name="identity">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()" />
    </xsl:copy>
  </xsl:template>

<!-- template to remove middle element -->

</xsl:stylesheet>

转换是通过Java程序(Transformer类)完成的。转换后,
转换为“char”。我想保留
而不是“char”。请让我知道如何做到这一点


提前感谢。

由于XSLT在一个树上运行,该树包含所有字符作为Unicode字符,独立于原始的词法表示,因此纯XSLT处理器无法保留从输入复制到输出的字符表示。您需要使用像LexEv这样的预处理器,首先将字符表示转换为XSLT可以操作并转换或保留的标记。

因为XSLT在包含所有字符作为Unicode字符的树上操作,而不依赖于原始的词汇表示,纯XSLT处理器无法保留从输入复制到输出的字符的表示形式。您需要使用像LexEv这样的预处理器,首先将字符表示转换为XSLT可以操作并转换或保留的标记。

因为XSLT在包含所有字符作为Unicode字符的树上操作,而不依赖于原始的词汇表示,纯XSLT处理器无法保留从输入复制到输出的字符的表示形式。您需要使用像LexEv这样的预处理器,首先将字符表示转换为XSLT可以操作并转换或保留的标记。

因为XSLT在包含所有字符作为Unicode字符的树上操作,而不依赖于原始的词汇表示,纯XSLT处理器无法保留从输入复制到输出的字符的表示形式。您需要使用像LexEv这样的预处理器,首先将字符表示转换为XSLT可以操作、转换或保留的标记。

通常,转换器将字符作为文本输出,除非它们不能在所选的输出编码中表示。如果要保留非ASCII字符作为字符引用,请告诉样式表使用US-ASCII作为输出编码:

<xsl:output method="xml" encoding="US-ASCII" omit-xml-declaration="yes"/>

现在,所有非ASCII字符都必须序列化为引用


这不一定会逐字节保留输入,例如,序列化程序可能会选择使用十进制引用而不是十六进制引用。

通常,转换器会将字符作为文本输出,除非它们无法在所选输出编码中表示。如果要保留非ASCII字符作为字符引用,请告诉样式表使用US-ASCII作为输出编码:

<xsl:output method="xml" encoding="US-ASCII" omit-xml-declaration="yes"/>

现在,所有非ASCII字符都必须序列化为引用


这不一定会逐字节保留输入,例如,序列化程序可能会选择使用十进制引用而不是十六进制引用。

通常,转换器会将字符作为文本输出,除非它们无法在所选输出编码中表示。如果要保留非ASCII字符作为字符引用,请告诉样式表使用US-ASCII作为输出编码:

<xsl:output method="xml" encoding="US-ASCII" omit-xml-declaration="yes"/>

现在,所有非ASCII字符都必须序列化为引用


这不一定会逐字节保留输入,例如,序列化程序可能会选择使用十进制引用而不是十六进制引用。

通常,转换器会将字符作为文本输出,除非它们无法在所选输出编码中表示。如果要保留非ASCII字符作为字符引用,请告诉样式表使用US-ASCII作为输出编码:

<xsl:output method="xml" encoding="US-ASCII" omit-xml-declaration="yes"/>

现在,所有非ASCII字符都必须序列化为引用


这不一定会逐字节保留输入,例如,序列化程序可能会选择使用十进制引用而不是十六进制引用。

简而言之,更改Transformer类,使其保留
,如果您想要长答案,我们需要Transformer类的相关代码。还有其他特殊字符,如’。有些我不知道。如何保留所有字符?能否显示当前使用的XSLT?另外,您可以说您使用的是XSLT1.0还是XSLT2.0吗?谢谢@TimC我在问题中添加了XSLT。简言之,更改Transformer类,使其保留
,如果您想要长答案,我们需要Transformer类的相关代码。还有其他特殊字符,如’。有些我不知道。如何保留所有字符?能否显示当前使用的XSLT?另外,您可以说您使用的是XSLT1.0还是XSLT2.0吗?谢谢@TimC我在问题中添加了XSLT。简言之,更改Transformer类,使其保留
,如果您想要长答案,我们需要Transformer类的相关代码。还有其他特殊字符,如’。有些我不知道。如何保留所有字符?能否显示当前使用的XSLT?另外,您可以说您使用的是XSLT1.0还是XSLT2.0吗?谢谢@TimC我在问题中添加了XSLT。简言之,更改Transformer类,使其保留
,如果您想要长答案,我们需要Transformer类的相关代码。还有其他特殊字符,如’。有些我不知道。如何保留所有字符?能否显示当前使用的XSLT?还有,可以吗