Subject: RE: [xsl] Using <xsl:number> From: "Michael Kay" <mhk@xxxxxxxxx> Date: Wed, 9 Jun 2004 10:23:36 +0100 |
<xsl:number/> with no attributes should do the job. The "from" attribute with level="single" is very rarely used, and in the XSLT 1.0 spec it's very unclear what its intended meaning is. Michael Kay > -----Original Message----- > From: David Buddrige [mailto:dbuddrige@xxxxxxxxx] > Sent: 09 June 2004 04:55 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Using <xsl:number> > > Hi all, > > I am trying to figure out how to use the <xsl:number> > tag in the following way: > > > I have a set of recursively heirarchically structured > tags called "Scopes", in the following xml: > > > <Data> > <Scope id="1"> > <Scope id="2"/> > <Scope id="3"/> > </Scope> > <Scope id="4"> > <Scope id="5"> > <Scope id="6"/> > <Scope id="7"/> > </Scope> > <Scope id="8"> > <Scope id="9"> > <Scope id="10"/> > <Scope id="11"/> > </Scope> > <Scope id="12"/> > </Scope> > </Scope> > <Scope id="13"/> > </Data> > > What I want to do is add a sort-order property to each > Scope tag, which identifies its relative position at > each level of the heirarchy among its peers only. > That is to say, the sort-order tag should be added > like this: > > <Data> > <Scope id="1" sort-order="1"> > <Scope id="2" sort-order="1"/> > <Scope id="3" sort-order="2"/> > </Scope> > <Scope id="4" sort-order="2"> > <Scope id="5" sort-order="1"> > <Scope id="6" sort-order="1"/> > <Scope id="7" sort-order="2"/> > </Scope> > <Scope id="8" sort-order="2"> > <Scope id="9" sort-order="1"> > <Scope id="10" sort-order="1"/> > <Scope id="11" sort-order="2"/> > </Scope> > <Scope id="12" sort-order="2"/> > </Scope> > </Scope> > <Scope id="13" sort-order="3"/> > </Data> > > So that, as you can see, the sort-order is counted at > one level only of the recursive structure. If there > is a sub-tree coming from a given scope, then the > children are numbered starting at 1 at that direct > decentant level only... > > To do this, I have been trying to use the <xsl:number> > tag to insert a new attribute to my xml in the > following way: > > > <xsl:attribute name=\"sort_order\">"; > <xsl:number level=\"single\" from=\"Scope\"/>"; > </xsl:attribute>"; > > My problem is the "from" attribute... I am reading the > "XSLT Programmers Reference" by Michael Kay, and the > description for the "from" attribute of the > <xsl:number> tag says that the from field "Determines > a cut-off point, a point in the document from which > sequence numbering starts fresh". > > Subsequently, since I want to start numbering fresh > whenever a new subtree begins, I was trying to use > "Scope" as the identifier for the next tag that would > reset numbering... > > this does not work however - I always seem to get a > sort-order that is consecutively numbered from the > first element to the last ignoring the recursive > structure of scope tags. > > Can anyone help me out with how you go about matching > against any *child* scopes, so that all *child* scopes > reset the numbering, but any sibling scopes are > numbered consecutively? > > thanks heaps guys > > David. > > > > > > > __________________________________ > Do you Yahoo!? > Friends. Fun. Try the all-new Yahoo! Messenger. > http://messenger.yahoo.com/ > > --+------------------------------------------------------------------ > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ > or e-mail: <mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx> > --+-- > >
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Using <xsl:number>, David Buddrige | Thread | RE: [xsl] alphabetical listing, Ragulf Pickaxe |
RE: [xsl] transformation adds attri, Michael Kay | Date | RE: [xsl] alphabetical listing, Michael Kay |
Month |