Re: [xsl] using name() to generate a tag dynamically in xsl output - STILL TRYING

Subject: Re: [xsl] using name() to generate a tag dynamically in xsl output - STILL TRYING
From: mark bordelon <markcbordelon@xxxxxxxxx>
Date: Fri, 26 Feb 2010 13:40:08 -0800 (PST)
David's works, too. Sorry all. I implemented something else incorrectly.
Both solutions work and give the same result.
Thanks.

--- On Fri, 2/26/10, Imsieke, Gerrit, le-tex <gerrit.imsieke@xxxxxxxxx>
wrote:

> From: Imsieke, Gerrit, le-tex <gerrit.imsieke@xxxxxxxxx>
> Subject: Re: [xsl] using name() to generate a tag dynamically in xsl output
- STILL TRYING
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Date: Friday, February 26, 2010, 1:36 PM
> But isn't what David suggested
> exactly what you need?
>
>    <xsl:template
> match="*[word][@s_len&lt;2.5]">
>
> Gerrit
>
>
> On 26.02.2010 22:24, mark bordelon wrote:
> > I was not clear. And I should have posted some xml, so
> here it is:
> >
> > <text>
> >     <line id="1"
> s_len="2.8">
> >        <word
> id="1">Thou</word>
> >        <word
> id="2">still</word>
> >        <word
> id="3">unravish'd</word>
> >        <word
> id="4">bride</word>
> >        <word
> id="5">of</word>
> >        <word
> id="6">quietness</word>,
> >     </line>
> >     <clause id="2"
> s_len="2.4">
> >        <word
> id="7">The</word>
> >        <word
> id="8">quick</word>-
> >        <word
> id="9">brown</word>
> >        <word
> id="10">fox</word>
> >        <word
> id="11">jumped</word>
> >        <word
> id="12">over</word>
> >        <word
> id="13">lazy</word>
> >        <word
> id="14">dog</word>,
> >      </clause>
> > </text>
> >
> > I want a the xpath which would work in a template
> match to get the parent node of<word>, no matter what
> it is, whose @s_len attribute is less than 2.5 seconds.
> >
> > The template will then compose an element for output,
> using the tagname of that parent of<word>  which
> met that condition.
> >
> > This works:
> > <xsl:template match="clause[@s_len&lt;2.5] |
> line[@s_len&lt;2.5]">
> > <xsl:element name="{name()}">
> >     <xsl:attribute
> name="id"><xsl:value-of select="@id"
> /></xsl:attribute>
> > </xsl:element>
> > </xsl:template>
> >
> > But it presumes that I know that the parent
> of<word>  is either a node
> named<clause>  or<line>. I am trying to
> generalize even further and not make that assumption in the
> match condition.
> >
> > As I said, I cannot seem to use any axis or axis-like
> expression, so matches like the following give an error in
> Altova Spy:
> > match="word/parent::*[@s_len&lt;2.5]"
> > match="word/../*[@s_len&lt;2.5]"
> >
> > I have tried your suggestions and no node is returned,
> but I think I was not clear in what I needed.
> >
> >
> > --- On Fri, 2/26/10, Christopher R. Maden<crism@xxxxxxxxx> 
> wrote:
> >
> >
> > From: Christopher R. Maden<crism@xxxxxxxxx>
> > Subject: Re: [xsl] using name() to generate a tag
> dynamically in xsl output - FOLLOW UP
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Date: Friday, February 26, 2010, 11:50 AM
> >
> >
> > mark bordelon wrote:
> >> Experimenting with it lead me to a follow-up
> question.
> >> Altova is complaining about any axis or axis-like
> syntax in my match
> >> statement. I have also tried
> word/parent::**[@s_len&lt;0] and various
> >> others. My idea is to get any node the parent
> of<word>  with that
> >> condition of its attribute.
> >
> > I was recently surprised to be reminded that match
> pattern steps are
> > restricted in their syntax.  Assuming that the
> double-asterisk was just
> > a typo in your e-mail, try *[word and @s_len< 
> 0] instead.
> >
> > ~Chris
>
> --
> Gerrit Imsieke
> Geschdftsf|hrer / Managing Director
> le-tex publishing services GmbH
> Weissenfelser Str. 84, 04229 Leipzig, Germany
> Phone +49 341 355356 110, Fax +49 341 355356 510
> gerrit.imsieke@xxxxxxxxx,
> http://www.le-tex.de
>
> Registergericht / Commercial Register: Amtsgericht Leipzig
> Registernummer / Registration Number: HRB 24930
>
> Geschdftsf|hrer: Gerrit Imsieke, Svea Jelonek,
> Thomas Schmidt, Dr. Reinhard Vvckler

Current Thread