Subject: [xsl] generating a repeatable unique id From: "Sebastian Rahtz" <sebastian.rahtz@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> Date: Sun, 29 Jul 2001 00:28:45 +0100 |
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. The idea is to process the document and return a list of sections; each will be a link to the same document, with a parameter containing an ID for the section. So in URI parlance, I'll ask for "index.xml" now, which will contain generated links to eg "index.xml?ID=div33". All well and easy, if the <div> elements have ID attributes, but they don't. And generate-id() is not guarenteed to be the same on the next iteration (well, it isn't with libxslt, at least). So I thought I'd 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. Can anyone suggest a better system? or am I simply barking up the wrong tree? maybe the best answer is to insist on ID attributes for my <div> elements... Sebastian XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] highlighting text template - , Jakob | Thread | Re: [xsl] generating a repeatable u, Michael Beddow |
[xsl] highlighting text template - , Jakob | Date | [xsl] Concat state-city together, Xiaocun Xu |
Month |