Re: [xsl] issue with cross referencing

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