Xml 实体替换

Xml 实体替换,xml,xslt,Xml,Xslt,我想替换以下xml的实体 <para>&#160;&#160;&#160;&#160;&#160;&#160;&#160;2015033555</para> <para>New York • Stuttgart • Delhi • Rio de Janeiro</para>        2015033555 纽约•斯图加特

我想替换以下xml的实体

<para>&#160;&#160;&#160;&#160;&#160;&#160;&#160;2015033555</para>
<para>New York • Stuttgart • Delhi • Rio de Janeiro</para>
       2015033555
纽约•斯图加特•德里•里约热内卢
输出应该是

<para>&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;2015033555</para>        
<para>New York &#x2022; Stuttgart &#x2022; Delhi &#x2022; Rio de Janeiro</para>
       ;2015033555
纽约•;斯图加特•;德里•;里约热内卢
XSLT就像

<xsl:template match="//text()">

    <xsl:copy-of select="replace(.,'&#160;','&#x00A0;')"/>
  <xsl:copy-of select="replace(.,'•','&#x2022;')"/>        
</xsl:template>

使用上面提到的xslt,它没有给出正确的输出。您能否帮助使用替换实体。

使用字符映射():


在线样品在

请记住,XSLT处理器不知道输入是否具有字面上的字符、数字字符引用、十六进制字符引用或某些命名实体引用,因为它使用底层XML解析器将词法输入XML解析到XSLT/XPath树模型中,XSLT/XPath树模型仅具有值为的节点Unicode字符序列。因此,上面的字符映射方法将XSLT输出的任何不间断空格作为序列
 和任何点,如
和#x2022,独立于原始输入标记。

使用字符映射():


在线样品在


请记住,XSLT处理器不知道输入是否具有字面上的字符、数字字符引用、十六进制字符引用或某些命名实体引用,因为它使用底层XML解析器将词法输入XML解析到XSLT/XPath树模型中,XSLT/XPath树模型仅具有值为的节点Unicode字符序列。因此,上面的字符映射方法将XSLT输出的任何不间断空格作为序列
 和任何点,如
和#x2022,独立于原始输入标记。

感谢您的回复。工作正常,谢谢你的回复,马丁。它工作正常。
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">

    <xsl:output use-character-maps="m1"/>

    <xsl:character-map name="m1">
        <xsl:output-character character="&#160;" string="&amp;#x00A0;"/>
        <xsl:output-character character="•" string="&amp;#x2022;"/>        
    </xsl:character-map>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
</xsl:transform>