我正在使用下面的XSL來測試自軸是否存在於跟隨軸中,如果存在,則選擇第一個前面的值。我得到一個語法錯誤幫助。參考什麼,我想實現:XPath重複語法錯誤
<xsl:if test="self::*/@Cat=following::*/@Cat">
<xsl:value-of select="preceding-sibling::*/@Cat[1]=[self::*/@Cat=following::*/@Cat]"/>
</xsl:if>
我正在使用下面的XSL來測試自軸是否存在於跟隨軸中,如果存在,則選擇第一個前面的值。我得到一個語法錯誤幫助。參考什麼,我想實現:XPath重複語法錯誤
<xsl:if test="self::*/@Cat=following::*/@Cat">
<xsl:value-of select="preceding-sibling::*/@Cat[1]=[self::*/@Cat=following::*/@Cat]"/>
</xsl:if>
的語法錯誤是圍繞下面的表達式的方括號「[1] =」。
您確定要使用「follow」而不是「follow-sibling」嗎?
此外,如果有@Cat屬性,那麼只會有一個這樣的屬性,所以選擇第一個是毫無意義的。
謝謝邁克爾。我不會因爲我一直在循環中提問,而是對xslt很陌生。 這就是我想要實現的。我想基於一個pageurl過濾器來選擇所有的@Cat節點。完成後,只需選擇第一個值即可對所選副本進行分組。我已經提出了一系列的問題,只是爲了達到這個目的,卻沒有喜悅。任何幫助將不勝感激如何實現這一點。 – user2692406
在XSLT 1.0中進行分組非常棘手,但大多數XSLT書籍都有一個描述如何操作的部分:查看「Muenchian分組」。或者,如果可能的話,轉移到XSLT 2.0,其中xsl:for-each-group結構使它變得微不足道。但是,您的代碼示例表明您可能在嘗試運行之前先行走;如果從解決更簡單的問題開始,學習語言會更容易! –
這裏顯示的源代碼中沒有屬性「@Cat」:http://stackoverflow.com/questions/19409642/remove-duplicates-xslt-xpath - >請給我們源XML。謝謝。 – Peter
嗨,彼得,我不明白你的意思,但那是我所有的xml。 – user2692406