2010-12-16 41 views
0

了這個醞釀了一段時間...... 我有以下幾行XML文件獲取價值的XSL,XML名稱相同

<image size="small">image_small.jpg</image> 
<image size="medium">image_medium.jpg</image> 
<image size="large">image_large.jpg</image> 

我如何能只得到了媒體的任何想法例如url。

目前我有...但它沒有這樣做的伎倆

<tr> 
<td><img><xsl:attribute name="src"> 
      <xsl:value-of select="image/@size[@size=medium]" /> 
     </xsl:attribute> 
    </img> 
</td> 
</tr> 

在此先感謝

回答

3

你的問題沒有得到很好的界定,因爲我們沒有你的整個XSLT也不所需輸出,但我會試試看:

如果您正在使用for-loop迭代不同的圖像,則需要在循環本身上設置約束,而不是循環的內容。

如果你把你的例子代碼xsl:for-each內將每幅圖像迭代但只填寫@src屬性時image@size="medium"是當前節點。這會爲您提供三個表格行,其中包含三張圖片,但只有一張圖片具有有效的@src屬性。

而是改變你的xsl:for-eachor use xsl:apply-templates)只與@size="medium"遍歷您的圖像:

<!-- This will only iterate over the medium sized images. --> 
<xsl:for-each select="image[@size='medium']"> 
    <tr> 
    <td> 
     <img src="{.}"/> 
    </td> 
    </tr> 
</xsl:for-each> 

另一個提示:而不是使用xsl:attribute使用attribute value template

+0

就像一個絕對的魅力,謝謝你 – Stevanicus 2010-12-17 00:11:03