Subject: Re: [xsl] XSLT2 node comparison, wordlists From: "James Cummings" <cummings.james@xxxxxxxxx> Date: Thu, 25 Oct 2007 01:35:39 +0100 |
On 10/24/07, Michael Kay <mike@xxxxxxxxxxxx> wrote: > > Nice to see you back, James. I like to stick my head above the lurking parapet occasionally ;-) > It's not easy, actually! Oh good. That is reassuring. I did think I was just missing something obvious. I implemented something which worked perfectly that was a combination between your suggestion and Ken's, and used xsl:result-document to stick the linkGrps in another file. So thanks to you both! If all the people on this list that have helped me over the years decided to collect on the number of beers I must owe them my local would run dry. ;-) Of course, what I'm wondering now is the most efficient way to pull out the first value from the correct document('linkGrps.xml')linkGrp/link/@target when processing the text in question so as to make links from it, to the entry in the wordlist file. Basically, say the XML in file.xml looks like: ==== <div> <l> <seg xml:id="w1">This</seg> <seg xml:id="w2">is</seg> <seg xml:id="w3">a</seg> <seg xml:id="w4">test</seg>. </l> </div> ==== and linkGrps.xml looks like: ==== <div> <linkGrp> <link targets="wordlist.xml#let1-w1-vA file.xml#w3"/> </linkGrp> <linkGrp> <link targets="wordlist.xml#let8-w17-vB file.xml#w2"/> </linkGrp> <linkGrp> <link targets="wordlist.xml#let20-w25-vA file.xml#w1"/> <link targets="wordlist.xml#let20-w32-vC file.xml#w4"/> </linkGrp> </div> ==== And in processing file.xml I want to output something like: ==== <div> <span class="l"> <a id="w1" href="wordlist.html#let20-w25-vA">This</a> <a id="w2" href="wordlist.html#let8-w17-vB">is</a> <a id="w3" href="wordlist.html#let1-w1-vA">a</a> <a id="w4" href="wordlist.html#let20-w32-vc">This</a> </span> </div> ==== Now the reason I'm concerned is that of course linkGrps.xml is quite large. Which was one of the reasons I decided to output these values to a different file, rather than store them in a separate section of wordlist.xml. So I'm wondering what the best/quickest way is to get the wordlist.xml#* token from the correct document('linkGrps.xml')//linkGrp/link. My current solution is iterating over the nodes and matching the one whose tokenized @targets contains the current file.xml id value. But that seems rather brute force and might not be efficiently scalable (I've not tested). I keep thinking I should be using xsl:key but couldn't seem to get it to work with document() properly. Other suggestions? -James -- James Cummings, Cummings dot James at GMail dot com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] XSLT2 node comparison, wo, Michael Kay | Thread | Re: [xsl] XSLT2 node comparison, wo, G. Ken Holman |
Re: [xsl] XSLT2 node comparison, wo, G. Ken Holman | Date | [xsl] Using a Java Function in XSLT, Jeff Sese |
Month |