[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: generating a repeatable unique id

Subject: Re: generating a repeatable unique id
From: Colin Muller <colin@xxxxxxxxxxxxxx>
Date: Sun, 29 Jul 2001 19:14:20 +0800
zulu sentence
On Sun, Jul 29, 2001 at 12:28:45AM +0100, Sebastian Rahtz wrote:
> Consider this skeleton document:
> 
> <root>
> <front>
> <div/><div/><div/>
> </front>
> <body>
> <div/><div/><div/>
> </body>
> </root>
> 
> I want to generate a repeatable ID for any <div> on the fly. 

[snip]
> make myself a key table, which lets me identify a target <div> quickly
> when the key value is passed in:
> 
>  <xsl:key name="DIVS" 
>    match="div" 
>    use="concat(name(..),concat('_',concat(name(.),concat('_',count(preceding-sibling::div)))))"/>
> 
> This works, but the procesing cost looks to be silly, doing that
> count of preceding-siblings for every div.

Not sure how repeatable 'repeatable' needs to be, but if the document
is not going to change before you get back to it with the id, you can
do what I do when creating HTML forms for editing XML docs: save a
temporary file in which every element gets associated with this:

<xsl:attribute name="angazi.id">
    <xsl:number level="any" count="*"/>
</xsl:attribute>

(angazi in there is a Zulu sentence meaning "I don't know", and is the
name of an agnostic content manager I wrote and use)

... and name the HTML form input elements accordingly:
input name="whatever_the_relevant_count_value_is". On the way back
in, I just need to have kept track of the xpath-count_number
association to be able tp put things back in the right place.

This has never created an unacceptable (for my purposes) processor
overhead, so I've never questioned how the processors actually handle
the count, but I've presumed that there's some sort of an internal
stack on which it's uncostly to count the total number of elements up
to and including a certain one - if indeed that count is not in any
case already known for the processor's own nefarious internal
purposes. You have no need to keep track of anything other than the
total count, of course: the numbers you actually use don't need to be
sequential.

Colin


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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.