xsl-list
[Top] [All Lists]

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

2010-02-26 15:40:28
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(_dot_)imsieke(_at_)le-tex(_dot_)de> wrote:

From: Imsieke, Gerrit, le-tex <gerrit(_dot_)imsieke(_at_)le-tex(_dot_)de>
Subject: Re: [xsl] using name() to generate a tag dynamically in xsl output - 
STILL TRYING
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Date: Friday, February 26, 2010, 1:36 PM
But isn't what David suggested
exactly what you need?

   <xsl:template
match="*[word][(_at_)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[(_at_)s_len&lt;2.5] |
line[(_at_)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::*[(_at_)s_len&lt;2.5]"
match="word/../*[(_at_)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(_at_)maden(_dot_)org> 
wrote:


From: Christopher R. Maden<crism(_at_)maden(_dot_)org>
Subject: Re: [xsl] using name() to generate a tag
dynamically in xsl output - FOLLOW UP
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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::**[(_at_)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
Geschäftsfü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(_dot_)imsieke(_at_)le-tex(_dot_)de,
http://www.le-tex.de

Registergericht / Commercial Register: Amtsgericht Leipzig
Registernummer / Registration Number: HRB 24930

Geschäftsführer: Gerrit Imsieke, Svea Jelonek,
Thomas Schmidt, Dr. Reinhard Vöckler

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




      

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>