我已創建自定義xslt樣式以在我的網站上顯示新聞。我的問題是,我的一些新聞有一個橫幅,其中一些沒有。那麼,如何通過使用XSLT來確定如何顯示帶有橫幅的新聞或沒有它的新聞?XSLT顯示圖片或顯示空白
我知道什麼字段包含橫幅網址。所以我可以想象我必須遍歷我的新聞,然後通過某種if語句的返回值來加載顯示錶單,該if語句檢查新聞是否有橫幅廣告。
我是XSLT新手,所以我該怎麼做?任何幫助appriciated。
我已創建自定義xslt樣式以在我的網站上顯示新聞。我的問題是,我的一些新聞有一個橫幅,其中一些沒有。那麼,如何通過使用XSLT來確定如何顯示帶有橫幅的新聞或沒有它的新聞?XSLT顯示圖片或顯示空白
我知道什麼字段包含橫幅網址。所以我可以想象我必須遍歷我的新聞,然後通過某種if語句的返回值來加載顯示錶單,該if語句檢查新聞是否有橫幅廣告。
我是XSLT新手,所以我該怎麼做?任何幫助appriciated。
我認爲你可以使用這樣的事情:
<xsl:choose>
<xsl:when test="not(empty(imageurlfield))">
<!-- Display with image here -->
</xsl:when>
<xsl:otherwise>
<!-- Display without image here -->
</xsl:otherwise>
</xsl:choose>
我收到一個錯誤,說'empty()'是一個未知的XSLT函數? – diceler 2011-03-02 13:36:31
'empty()'是一個XPath/XSLT 2.0函數。 – 2011-03-02 14:38:42
您可以使用xsl:if標籤來測試一些XPath的所有腦幹:
<xsl:if test="./@banner">
<p class="banner"><xsl:value-of select="./@banner" /></p>
</xsl:if>
只需指定兩個模板,一個新聞條目一面旗幟,一面沒有。
<xsl:template match="newsitem[banner]">
<!-- pattern for news items with a banner -->
</xsl:template>
<xsl:template match="newsitem">
<!-- pattern for news items without a banner -->
</xsl:template>
上面的例子假設新聞項都包含在名爲newsitem
的元素,含約旗幟的數據的子元素banner
,如果存在一個。這裏的第二個模板被第一個包含banner
孩子的newsitem
元素取代。
問一個XSLT問題的正確方法是提供一個完整的(但儘可能最小的)XML文檔,完整的想要的結果以及列出轉換的任何規則/約束。請這樣做,否則收到的答案的質量將只與您問題的質量相符。 – 2011-03-02 14:11:40
經典的XSLT方式是使用niether'xsl:if'或'xsl:choose'等指令進行模式匹配,與上面的回答類似。但是如果沒有輸入樣本,我們無法向您顯示如何。 – 2011-03-02 14:46:09