xsl计数器和条件

时间:2013-04-16 10:36:58

标签: xslt

我有一个条件,其中section元素应该同时具有num属性和level,可以是2级以外的任何值。如下所示。

<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']'/>

由于

2 个答案:

答案 0 :(得分:0)

试试这个 -

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

对于您在评论中的问题,请尝试这意味着num属性不存在 -

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

你的意思是你不关心level = sect2然后就这样删除 -

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

这将为您计算num属性不存在的位数,level的值不是sect2。

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

答案 1 :(得分:0)

在我的理解中更多:

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

由于:  但我想要计算第一和第三,留下第二。 编辑:似乎应该是第一和第二 所有部分似乎都是“@level!='sect2'”,所有部分都带有“@num”。