|
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 |