2013-04-16 54 views
0

我有一個條件,部分元素應該有一個num屬性和水平可以是除了級別2之外的任何。xsl計數器和條件

<section level="sect2" num="1."> 
    <title>Flowchart&#x2014;HKIAC Mediation</title> 
</section> 

<section level="sect3"> 
    <title>Flowchart&#x2014;HKIAC Mediation</title> 
</section> 

<section level="sect2"> 
    <title>Flowchart&#x2014;HKIAC Mediation</title> 
</section> 

當我使用下面的xslt它只計算第一個帶有數字屬性的xml,並留下第二個和第三個。但我想先算第一和第三。

我用下面的語句

<xsl:number count='section[@num]'/> 

,但我想類似下面

<xsl:number count='section[@num] and section[@level!='sect2']'/> 

感謝東西

回答

0

試試這個 -

<xsl:number count="section[@num and @level != 'sect2']"/> 

對於您的問題在評論中試試這個,這意味着NUM屬性不存在 -

<xsl:number count="section[not(@num) and @level = 'sect2']"/> 

你是說你不關心,如果等級= sect2的然後就刪除這樣的 -

<xsl:number count="section[not(@num)]"/> 

這會給你算其中num屬性不存在和水平的價值不是第2部分。

<xsl:number count="section[not(@num) and @level != 'sect2']"/> 
+0

嗨@Bhushan,感謝您的回覆,這是工作正常,但在這裏我有另一個問題,它應該計數sec2只有當num屬性不爲空。請讓我知道我該怎麼做。謝謝 – Marsoni

+0

更新工作正常,只計算級別sect2與不作爲屬性,但不計算,如果水平屬性不是sect2 – Marsoni

+0

嗨Bhushan,也應該檢查水平是否是除了2 – Marsoni

0

在我的理解它的更多:

<xsl:number count="section[@num or @level != 'sect2']"/> 

因爲: ,但我想指望第一和第三離開第二。 編輯:似乎應該是拳頭和第二 什麼似乎是「@level!='sect2'」的所有部分和「@num」的所有部分。

+0

但這裏irt會計數第二個也是因爲@level被設置爲sect2,我想如果等級是sect2它應該有一個數字屬性,那麼它應該被計數和任何級別與sec2級別應該計數 – Marsoni

+0

嗯所以你喜歡在你的例子中計算第一個和第二個條目。這將是'[@num或@level!='sect2']' –