Xml 实体替换
我想替换以下xml的实体Xml 实体替换,xml,xslt,Xml,Xslt,我想替换以下xml的实体 <para>       2015033555</para> <para>New York • Stuttgart • Delhi • Rio de Janeiro</para> 2015033555 纽约•斯图加特
<para>       2015033555</para>
<para>New York • Stuttgart • Delhi • Rio de Janeiro</para>
2015033555
纽约•斯图加特•德里•里约热内卢
输出应该是
<para>       2015033555</para>
<para>New York • Stuttgart • Delhi • Rio de Janeiro</para>
;2015033555
纽约•;斯图加特•;德里•;里约热内卢
XSLT就像
<xsl:template match="//text()">
<xsl:copy-of select="replace(.,' ',' ')"/>
<xsl:copy-of select="replace(.,'•','•')"/>
</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=" " string="&#x00A0;"/>
<xsl:output-character character="•" string="&#x2022;"/>
</xsl:character-map>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:transform>