Подтвердить что ты не робот

Таблица стилей XSLT: изменение текста в верхний регистр

Я использую таблицу стилей XSLT для создания документа Excel из файла XML. Одно из значений, которое я использую, я хочу отображать как верхний регистр. Как это возможно?

4b9b3361

Ответ 1

XSLT 2.0 имеет функции fn: upper-case() и fn: lower-case(). Однако, если вы используете XSLT 1.0, вы можете использовать translate():

<xsl:template match="/">
  <xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
  <xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
  <xsl:value-of select="translate(doc, $smallcase, $uppercase)" />
</xsl:template>

Ответ 2

Вы можете использовать функцию translate() в XSLT 1.0:

<xsl:value-of select="translate(//some-xpath,
                                'abcdefghijklmnopqrstuvwxyz',
                                'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />

Если вам посчастливилось иметь доступ к XSLT 2.0, вы можете использовать функцию upper-case():

<xsl:value-of select="upper-case(//some-xpath)"/>

Подробнее см. справочную страницу функции XPath.

Ответ 3

XPath 2.0 имеет fn:upper-case(), который также делает правильные сопоставления в Unicode.

Ответ 4

Используйте сборку следующим образом:

<msxsl:script implements-prefix="user" language="C#">
<!--{%assembly%}-->
<![CDATA[  

public string ToUpper(string stringValue)
{
    string result = String.Empty;

    if(!String.IsNullOrEmpty(stringValue))
    {
      result = stringValue.ToUpper(); 
    }

    return result;
}
]]>
</msxsl:script>

Вызвать его следующим образом: select="user:ToUpper(//root/path)"

Это можно использовать в версиях 1.0 или 2.0.

Ответ 5

Самый простой и чистый способ добиться преобразования case - с помощью CSS.

построить класс, например:

.upper { text-transform: uppercase; }

то используйте класс как класс span:

<span class="upper">
    <xsl:value-of select="myTextField" />
</span>

что он:)

Вы также можете использовать другие преобразования:

text-transform:  capitalize | uppercase | lowercase | none | inherit