Re: [xsl] Generating Unique ID

Subject: Re: [xsl] Generating Unique ID
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 06 Dec 2005 12:50:20 -0500

At 02:55 AM 12/6/2005, Arun wrote:
I have an xml file and I need to present it in html in the following format :-


I am able to present the data in the same format but the problem I have now is that I have to assign a unique ID to these data.

What I would like is that the IDs generated at lower level should contain the ID of parent node as well. For example :-

ID of AA = (ID of A + ID of AA)
ID of AAA = (ID of A + ID of AA + ID of AAA)

and so on.

Actually, if you wanted something similar to the strings "A", "AA", "AB" etc. to be your ids, they'd be easy enough to generate with xsl:number:

<xsl:number count="*" from="/" level="multiple" format="A"/>

(When I test with Saxon it uses a "." delimiter so things come out "A.B.A" ... which is good when you get past X, Y, Z and start on AA....)

But it sounds like you want something more ... complex? transparent? opaque?

Such ids as you describe can be easily generated by traversing the ancestor node from each element you want to label. But often IDs are over-engineered, and don't need (or even are better without) all the information they're asked to carry. Many times the generate-id() function is actually better (because it warrants nothing beyond the uniqueness of the identifier within the current document).


Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.      
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
  Mulberry Technologies: A Consultancy Specializing in SGML and XML

Current Thread