Subject: Re: [xsl] Re: AW: AW: global variable and position() once more From: Mulberry Technologies List Owner <xsl-list-owner@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 2 Sep 2003 13:35:58 -0400 |
>From: fe.sola@xxxxxxxxxxxxxx >Date: Tue, 2 Sep 2003 11:59:18 -0400 >To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx >Subject: Re: [xsl] Re: AW: AW: global variable and position() once more > >Hello Dimitre: >I tested the code and yes, it didn't copy the last element of the list but also had >another problem and that is definetely my fault, I omitted to mention there are other >lists >like that in the input document, cause the description and the references appear as text >nodes but numbered lists as well, so the algorithm takes part of the other lists as well. >I'm going to try this new one and let you know the real output. >Thanks a lot for your help, so far the tutorials and chapters about XPath I've read >haven't mentioned the xsl:key tag, except for the specification, of course. >I will take a look at Amazon and find about the books you mentioned. >Best regards, >Lizet > >Mensaje citado por Dimitre Novatchev <dnovatchev@xxxxxxxxx>: > >> > You guys are really masters of XPath...Let me read this slowly and try >> > to understand... >> > Do you have any book or tutorial with this tricky constructions?? >> > Thanks a lot! >> > lizet >> >> Actually there was a small omission in the code and this would not allow >> the last trailers to be copied. >> >> Here's the corrected code (the key definitions are omitted as they are the >> same: >> >> <xsl:stylesheet version="1.0" >> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> >> >> <xsl:output omit-xml-declaration="yes" indent="yes"/> >> <xsl:strip-space elements="*"/> >> >> <xsl:key name="kStart" >> match="text()[preceding-sibling::*[1][self::br]]" >> use="contains(., '.') >> and >> number(substring-before(., '.')) >> = >> number(substring-before(., '.'))"/> >> >> <xsl:key name="kTrail" >> match="text()[preceding-sibling::*[1][self::br]]" >> use="generate-id( >> preceding-sibling::text() >> [ >> contains(., '.') >> and >> number(substring-before(., '.')) >> = >> number(substring-before(., '.')) >> ] >> [1] >> )"/> >> >> <xsl:template match="/"> >> <xsl:for-each select="key('kStart', 'true')"> >> <Claim> >> <xsl:copy-of select="normalize-space()"/> >> <xsl:variable name="vLastNumbered" select="position() = last()"/> >> <xsl:for-each select="key('kTrail', generate-id())"> >> <xsl:if test="$vLastNumbered or not(position() = last())"> >> <xsl:copy-of >> select="concat(substring(.,1,1), >> normalize-space(substring(.,2)) >> )"/> >> </xsl:if> >> </xsl:for-each> >> </Claim> >> </xsl:for-each> >> </xsl:template> >> </xsl:stylesheet> >> >> I believe that two very good books on XSLT are the following: >> >> "Beginning XSLT" by Jeni Tennison >> >> "XSLT Programmer's Reference" by Michael Kay. >> >> >> >> >> >> >> >> >> >> ===== >> Cheers, >> >> Dimitre Novatchev. >> http://fxsl.sourceforge.net/ -- the home of FXSL >> >> __________________________________ >> Do you Yahoo!? >> Yahoo! SiteBuilder - Free, easy-to-use web site design software >> http://sitebuilder.yahoo.com >> >> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list >> > > > > >------------------------------------------------- >Este mensaje fue enviado usando el servicio de correo en web de Infomed >http://webmail.sld.cu XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: Re: EXSLT, how to use, fe . sola | Thread | [xsl] genarate key using a variable, aruniima . chakrabar |
Re: [xsl] XSL design question, David Carlisle | Date | [xsl] Unknown error in Xpath, Vivek Shinde |
Month |