2013-04-25 41 views
0

我想格式化我的表,以便有一個左填充,我想決定發生在我的陳述內,因爲有多個行需要填充定義。使用XSLT時選擇何時在XML元素不工作

我已經創建了一個XML元素,它告訴我要使用哪個填充,所以我只需要讀取它,但是當我嘗試讀取它時,它顯示任何東西,當我在瀏覽器中打開xml時。

這是我的xml樣本。

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="xmlstylesheet.xsl" type="text/xsl"?> 
<Collection> 
    <Passives> 
      <Talent>Tra</Talent> 
      <TCost>1</TCost> 
      <Type>ANY</Type> 
      <Action>Pass</Action> 
    </Passives> 
    <Passives> 
      <Talent>Gen</Talent> 
      <TCost>1</TCost> 
      <Type>ANY</Type> 
      <Indent>1</Indent> 
      <Action>Pass</Action> 
    </Passives> 
    <Passives> 
      <Talent>Weap</Talent> 
      <TCost>12</TCost> 
      <Type>ANY</Type> 
      <Indent>2</Indent> 
      <Action>Pass</Action> 
    </Passives> 
</Collection> 

它的要點是,如果沒有<Indent></Indent>然後填充應該等於15像素如果沒有縮進元件,如果indenet = 1,則填充應等於30和最後縮進= 2,則填充應該等於45.

我想在我的xslt中定義填充以表示被動語態。

<xsl:for-each select="Passives"> 
      <div style="font-family:Calibri, Arial; font-size:5pt; cursor: default;"> 

      <xsl:choose> 
<xsl:when test="Indent == '2'"> 
        <xsl:variable name="newpadding">45px</xsl:variable> 
       </xsl:when> 
       <xsl:when test="Indent == '1'"> 
        <xsl:variable name="newpadding">30px</xsl:variable> 
       </xsl:when> 
       <xsl:when test="Indent != ''"> 
        <xsl:variable name="newpadding">15px</xsl:variable> 
       </xsl:when> 
     </xsl:choose> 

     <xsl:if test="Talent != ''"> 
//etc 

所以只要輸入我的statment我想定義newpadding所以我一個然後將其應用到我的表格填充後。

任何幫助將不勝感激。

回答

2

取而代之的是:

<xsl:choose> 
      <xsl:when test="Indent == '2'"> 
       <xsl:variable name="newpadding">45px</xsl:variable> 
      </xsl:when> 
      <xsl:when test="Indent == '1'"> 
       <xsl:variable name="newpadding">30px</xsl:variable> 
      </xsl:when> 
      <xsl:when test="Indent != ''"> 
       <xsl:variable name="newpadding">15px</xsl:variable> 
      </xsl:when> 
    </xsl:choose> 

試試這個:

<xsl:variable name="newpadding" 
       select="15 * (1 + concat(0, Indent))" /> 

你只告訴我們您的XSLT的一小部分,所以沒有辦法,看看是否有其他問題需要修復。

+0

這工作完美:)感謝很多。 – HurkNburkS 2013-04-25 06:39:56