Я пытаюсь использовать xslt для создания набора данных xml, и в настоящее время сталкиваюсь с проблемой, что пытаюсь установить некоторые недопустимые имена элементов, 3RD_RACK, 3DATA_VIEW, и то, что я пытался использовать:
<xsl:value-of select="translate(current()/@name), translate(current()/@name), 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_', ''), '_')"/>
, который заменяет 3RD_RACK -> _RD_RACK
и все другие числа в наборе данных, такие как:
PROGRAMMDAUERPROGRAM1 -> PROGRAMMDAUERPROGRAM
ENERGY_CLASS_2010 -> ENERGY_CLASS__
Мне пришло в голову заменить все числа их строковыми представлениямичтобы присоединиться к проверке XML, такой как:
1 -> один 2 -> два
Так что в итоге мой ввод становится:
3RD_RACK -> threeRD_RACK, ENERGY_CLASS_twozeroonezero, PROGRAMMDAUERPROGRAMone
Но я не мог 'я не могу достичь своей цели, пытаясь:
<xsl:variable name="MyMap" select="
map {
'1' : 'one',
'2' : 'two',
'3' : 'three',
'4' : 'four',
'5' : 'five',
'6' : 'six',
'7' : 'seven',
'8' : 'eight',
'9' : 'nine'}">
</xsl:variable>
<xsl:value-of select="$MyMap(current()/@name)"/>
возвращает только цифры, поэтому кто-то может мне помочь, как я могу перевести только числа, встречающиеся в строке?
Заранее спасибо за ваши ответы.