我試圖在XSLT中的foreach語句中插入一個if-else語句。 的想法是,如果節點存在,將插入一個一行break.This是我到目前爲止XSLT:做一個if-else內部的foreach
<xsl:for-each select="Books/Publisher/[BookTitle]">
<strong>
<xsl:value-of select=" BookTitle " />
</strong>
<xsl:if test=" Books/Publisher/BookTitle">!= ''">
<br/>
</xsl:if>
</xsl:for-each>
的問題是,當我插入換行符標籤不出現的if-else語句,但只有當我完全刪除if時才能工作。有人向我解釋爲什麼會發生這種情況,因爲我已經檢查了節點在那裏,並且插入換行符應該可以工作。因此,必須存在if-else內容的錯誤foreach循環。
下面是文章[#1] [1],這是值得一讀 [1]:http://stackoverflow.com/questions/5169140/how-to-implement-if-else-if-else-condition-in- xll –
JLRishe給了你正確的代碼,但並沒有告訴你你做錯了什麼。您忘記了xsl:for-each會更改上下文,特別是用於評估相對路徑表達式的上下文項。 –