XML-Attributes字符映射问题

时间:2014-01-30 07:17:36

标签: xml character-encoding xslt-2.0

以下是我输入的xml文件的片段:

<ARTICLE PDFID="AT-11-2013-07.pdf" DOI="AT-11-2013-07">
<ISSN>002-267</ISSN>

我在xslt(2.0)中使用了字符映射,如下所示:

<xsl:character-map name="xyzentity">
<xsl:output-character character="-" string="&amp;hyphen;"/>
</xsl:character-map>

但我得到的输出是:

<ARTICLE PDFID="AT&hyphen;11&hyphen;2013&hyphen;07.pdf" DOI="AT&hyphen;11&hyphen;2013&hyphen;07">
<ISSN>002&hyphen;267</ISSN>

具有-的所有属性值也会转换为&hyphen;。我只需要数据而不是属性。不知道该怎么做。任何形式的帮助都将得到真正的赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

使用xsl:character-map无法实现所要求的内容,因为您无法有选择地仅将字符映射应用于某些模板

我会改用这样的东西:

<xsl:template match="ISSN">
    <xsl:copy>
        <xsl:value-of select="replace(.,'-','&amp;hyphen;')" disable-output-escaping="yes"/>
    </xsl:copy>
</xsl:template>