2014-01-30 58 views
0

这里是我输入xml文件的一个片段: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;。我只需要数据而不是属性。不知道如何去做这件事。任何形式的帮助都会得到真正的赞赏。谢谢。

+0

为什么无论如何,你是用'&hyphen;'替换'-'的吗? – Tomalak

+0

要求是所有实体都应该转换为字符串。除属性值外。 – GTM

+1

我没有问*你想要做什么,但是*为什么*你想要做。根据XML的工作原理,这应该是完全不必要的。 – Tomalak

回答

0

什么被要求不能使用XSL来实现:字符映射,因为你不能选择仅适用字符映射到一些模板

我只想用这样的事情,而不是:

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