Subject: Re: [xsl] issue with cross referencing From: meenakshi n <mina_hurray@xxxxxxxxx> Date: Fri, 13 Oct 2006 07:33:12 -0700 (PDT) |
Hello George! This worked! I actually passed the format type to the 'step' varibale and it worked like magic! Thanks so much! Here is the corrected code: <xsl:template match="xref"> <xsl:variable name="step" select="key('steps',@xrefid)"/> <xsl:for-each select="$step"> <xsl:if test="name($step)='step1'"> <xsl:number format="1"/> </xsl:if> <xsl:if test="name($step)='step2'"> <xsl:number format="A"/> </xsl:if> <xsl:if test="name($step)='step3'"> <xsl:number format="1"/> </xsl:if> <xsl:if test="name($step)='step4'"> <xsl:number format="a"/> </xsl:if> <xsl:if test="name($step)='step5'"> <xsl:number format="1"/> </xsl:if> <xsl:if test="name($step)='step6'"> <xsl:number format="a"/> </xsl:if> </xsl:for-each> </xsl:template> --- George Cristian Bina <george@xxxxxxxxxxxxx> wrote: > Hi, > > A stylesheet like the one below > > <?xml version="1.0" encoding="utf-8"?> > <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > <xsl:key name="steps" match="*[@id]" > use="@id"/> > > <xsl:template match="xref"> > <xsl:variable name="step" > select="key('steps',@xrefid)"/> > <xsl:value-of > select="substring-after(name($step), 'step')"/> > <xsl:for-each select="$step"> > <xsl:number format="A"/> > </xsl:for-each> > </xsl:template> > </xsl:stylesheet> > > will give you as output > > First line here > Second line > Third line Cross ref thru 1A 1B > > Best Regards, > George > --------------------------------------------------------------------- > George Cristian Bina > <oXygen/> XML Editor, Schema Editor and XSLT > Editor/Debugger > http://www.oxygenxml.com > > meenakshi n wrote: > > Hi all: > > > > Have an issue with cross referencing. > > > > I have some text: > > > > 1. First line > > A. second line > > B. thrisd line > > 2. Cross ref to 1 A. > > > > The xml would be > > > > <step1 id="s1"> > > <text>First line here</text> > > > > <step2 id="s2"> > > <text>Second line</text> > > <step3 id="s3"> > > <text>Third line</text> > > </step3> > > </step2> > > > > </step1> > > <step1 id="s4"> > > <text>Cross ref thru <xref xrefid="s1"/> <xref > > xrefid="s2"/><xref > > > > Now, on my style sheet I have used keys to resolve > it > > like this: > > > > <xsl:key name="steps" match="*[@id]" use="@id"/> > > > > <xsl:template match="xref"> > > <xsl:for-each select="key('steps',@xrefid)"> > > <xsl:number count="step1" format="1"/> > > </xsl:for-each> > > </xsl:template> > > > > While I would expect Cross ref to 1 A, I am > getting > > Cross ref to 1 1 > > > > How do I make the number formatting to point to > and > > say A, B or whtever the level is? > > > > Thank you in advance for all your help. > > > > > > > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam > protection around > > http://mail.yahoo.com > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] issue with cross referenc, George Cristian Bina | Thread | Re: [xsl] Problem with xslfo, meenakshi n |
[xsl] Newbie Question: Creating Err, Badari | Date | Re: [xsl] Newbie Question: Creating, David Carlisle |
Month |