2012-02-28 23 views
0

IM具有XSL文件中的變量聲明不管它是12,14,16得到選擇XSLT變量的值,並在字體設置爲</p> <pre><code><xsl:variable name="check" > <xsl:value-of select="normalize-space(substring-before(substring-after(@style,'FONT-SIZE:'),'pt'))"/> </xsl:variable> </code></pre> <p>這給我的字體大小,在我的XML

<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:'),';'))}"> 

是正確的或有任何其他方式來做到這一點。

+0

你可以顯示你當前的輸入XML和你期望的輸出,因爲這樣可以更容易地幫助你嗎?謝謝! – 2012-02-28 08:54:07

回答

1

首先,更換此:

<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類來控制詳細的再現。

相關問題