получить выбранное значение переменной XSLT и установить в Font - PullRequest
0 голосов
/ 28 февраля 2012

у меня есть объявление переменной в файле XSL как

<xsl:variable name="check" >
            <xsl:value-of select="normalize-space(substring-before(substring-after(@style,'FONT-SIZE:'),'pt'))"/>
    </xsl:variable>

, что дает мне размер шрифта, как в моем XML, независимо от того, что это 12,14,16

<xsl:template name="fontSize"> 
        <xsl:choose>
            <xsl:when test="round($check=8) or round($check=7) or round($check=6)">
                    <font size="1" face="$Fface">
                            <xsl:value-of select="."/>  
                    </font>
            </xsl:when>
            <xsl:when test="round($check=10) or round($check=9)">
                    <font size="2" face="$Fface">
                        <xsl:value-of select="."/>  
                    </font>
            </xsl:when>
 <xsl:otherwise>
                    <font size="3" face="$Fface">
                            <xsl:value-of select="."/>
                    </font>         
          </xsl:otherwise>  
        </xsl:choose>
    </xsl:template>

я делаюшаблон для выбора нужного мне размера из запроса на выбор

, и я хочу получить выбранный размер для установки в атрибуте размера

<font size="$check"
              face="{normalize-space(substring-before(substring-after(@style,'FONT-FAMILY:'),';'))}">   

правильно или есть какие-либо другиеспособ сделать это.

1 Ответ

1 голос
/ 28 февраля 2012

Сначала замените это:

<xsl:variable name="check" >
      <xsl:value-of select="xxxxx"/>
</xsl:variable>

на это:

<xsl:variable name="check" select="xxxxx"/>

, что не только намного более кратко, но и, вероятно, будет гораздо более эффективным.(Эта ошибка кажется очень распространенной.)

Во-вторых, я не знаю, имеет ли это смысл в контексте вашего общего проекта, но вместо генерации элементов шрифта современный способ - использовать CSS.Выведите

<span class="c{$check}"><xsl:value-of select="."/></span>

, а затем определите классы CSS для управления подробным воспроизведением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...