[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] how to match the absence of a particular attribute


Subject: RE: [xsl] how to match the absence of a particular attribute
From: <Jarno.Elovirta@xxxxxxxxx>
Date: Mon, 30 May 2005 13:32:00 +0300

Hi,

> my problem is different, I need to match a node that have NOT a
> particular attribute.

test="not(@attribute)"

> Imagine a sequance of node of the same type which can have
> attributes or not.
> I need to perform a first match and if an particular attribute is
> absent I will have to perform a second match, otherwise the first
> match is enough.
>
> For example:
>
> <A>
>    <B a="a">hello2</B>
>    <B a="a" b="b">hello3</B>
>    <B>hello1</B>
>    <B b="b">hello4</B>
> </A>
>
> I match the first two "B" nodes as is (the XSLT rewrite them without
> translating)
> for the third "B" node, since it lacks the "a" attribute, the XSLT
> will perform a second match looking for the next "B" node.

If you're walking through the B elements one at a time, then

<xsl:apply-templates select="following-sibling::B[@a or @b][1]"/>

I.e. select the first following sibling that has either "a" or "b" attribute.
Use not() if you want negation of the test result.


Cheers,

Jarno - DJ Darjis: Harder, Faster, Louder! Vol. 4 (Disc Three)

> Is it possible to match the absence of an attribute with xsl?
>
> On 5/30/05, omprakash.v@xxxxxxxxxxxxx
> <omprakash.v@xxxxxxxxxxxxx> wrote:
> >
> >
> > Hi,
> >   Try this:
> >
> > <xsl:if test="@id">
> >   <!--   do something if attribute id exists -->
> > </xsl:if>
> >
> >
> > Cheers,
> > prakash
> >
> >
> >
> >
> >                    <talosso@gmai
> >                    l.com>               To:     XSL List
> <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> >                                         cc:     (bcc:
> omprakash.v/Polaris)
> >                    05/30/2005           Subject:     [xsl]
> how to match the absence of a particular attribute
> >                    02:28 PM
> >                    Please
> >                    respond to
> >                    xsl-list
> >
> >
> >
> >
> >
> >
> > Hi guys,
> >
> > how can I test the presence of a particular attribute of a
> node in an
> > "if" or "choose" tag?
> > I need to drive the behavior of the translation in two
> different ways,
> > if an attribute exists or not. I suppose the key point is the
> > capability to match the absence of an attribute, but I have found no
> > way to do this.
> >
> > Thank you very much for any help.
> >
> > Livio
> >
> >
> >
> >
> >
> >
> > This e-Mail may contain proprietary and confidential
> information and is sent for the intended recipient(s) only.
> > If by an addressing or transmission error this mail has
> been misdirected to you, you are requested to delete this
> mail immediately.
> > You are also hereby notified that any use, any form of
> reproduction, dissemination, copying, disclosure, modification,
> > distribution and/or publication of this e-mail message,
> contents or its attachment other than by its intended
> recipient/s is strictly prohibited.
> >
> > Visit Us at http://www.polaris.co.in


Current Thread
Keywords