This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Counting non-empty elements


Hi Sergej,

> I'd like to write a number near non-empty descriptions as shown in
> the following code:
>
> <xsl:template match="itemSet">
>   <tr>
>     <td>
>       <xsl:if test="normalize-space(itemDesc)">
>         <xsl:number level="multiple" format="1. "/>
>         <xsl:value-of select="itemDesc"/>
>       </xsl:if>
>     </td>
>     <td>....</td>
>   </tr>
>   ....
> </xsl:template>
>
> The problem is that also the empty elements are taken into account
> even if the number does not appear.

When you use xsl:number with an element as the current node, by
default it counts all the elements that have the same name as the
current element. You can tell the processor to only count certain
elements by creating a pattern for those elements within the count
attribute of xsl:number. If you want it to only count itemSet elements
that have a non-empty itemDesc element child, then you can use the
pattern:

  itemSet[normalize-space(itemDesc)]

So you can number them with:

  <xsl:number level="multiple" format="1. "
              count="itemSet[normalize-space(itemDesc)]" />

By the way, I'm assuming that you do want to use level="multiple" and
that itemSet elements that you're interested in at every level should
have text within their itemDesc children.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]