2014-01-30 3 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

Почему вы все равно заменяете '-'' '' '? – 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> 
Смежные вопросы