2011-07-18 54 views
1

我有包含圖像的子節點。我如何選擇並顯示它們?我似乎只能選擇並顯示ID。我用過的代碼:從umbraco中的子節點中選擇圖像

<xsl:value-of select="image"/> 

我該如何得到這個來顯示實際圖像?我正在使用Umbraco 4.7。我確信這很簡單,我似乎無法弄清楚。

我也試過下面的代碼,但它似乎沒有看到正確的節點。我認爲這是在看父母,而不是孩子,但我不知道如何改變這一點:

<xsl:variable name="media" select="umbraco.library:GetMedia($currentPage/image, 0)" /> 

<xsl:if test="$media"> 
     <img src="{$media/umbracoFile}" alt="{$media/altText}" /> 
</xsl:if> 
+0

這是http://stackoverflow.com/questions/6731760/umbraco-xslt-issue的副本? – marapet

+0

它的一個幾乎相同但是這是一個更好的描述,即時通訊設法做什麼,因爲另一個似乎有點混淆反射 – macroj

+0

@macroj - 在這種情況下,最好編輯原始問題,而不是再問一遍。 –

回答

0

我有一個包含一個圖像子節點。我如何選擇這些和 顯示它們?我似乎只能選擇並顯示ID。 我使用的代碼:

<xsl:value-of select="image"/> 

因爲你忘了張貼的XML文檔(學做這個!)這個問題是不可能的肯定回答。

我的猜測是,你可以,如果你使用的<xsl:copy-of>代替<xsl:value-of>

select屬性指定前者拷貝整個節點(或節點集)更成功,而後者只拷貝的字符串值節點(nodeset)。

瞭解節點集的字符串值與節點集的副本之間的區別是什麼

0

使用node()讓孩子們:

<xsl:for-each select="$currentPage/node()/image"> 
    <xsl:variable name="media" select="umbraco.library:GetMedia(., 0)" /> 
    <xsl:if test="$media"> 
     <img src="{$media/umbracoFile}" alt="{$media/altText}" /> 
    </xsl:if> 
</xsl:for-each> 
0

試試這個。

   <xsl:variable name="imageId" select="./image" /> 
       <xsl:if test="normalize-space($imageId)"> 
        <xsl:variable name="image" select="umbraco.library:GetMedia($imageId, false())" /> 

        <img src="{$image/umbracoFile}" rel="prettyPhoto" /> 
       </xsl:if> 
      </a> 
      </xsl:if>