Subject: Re: Complex Condition problem with Attributes
From: Ragulf Pickaxe <ragulf.pickaxe@xxxxxxxxx>
Date: Thu, 15 Sep 2005 14:36:22 +0200
|
> <xsl:when test="//*[contains(name(),'DebtManagement') and
> (//*[contains(name(),'DebtManagement')]@action='add' or
> //*[contains(name(),'DebtManagement')]@action='delete')">
>
> It failes at the position @. But why?
Your syntax is wrong.
Either //*[contains(name(),'DebtManagement')]/@action (which is not
what you want as it would choose the attribute - that is, test if the
attribute existed.
Or //*[contains(name(),'DebtManagement')][@action] (which would choose
the element (marked with *) that contains an attribute called action).
What you want is something like:
<xsl:when test="//*[contains(name(),'DebtManagement') and
(@action='add' or @action='delete')]">
Which gives all the elements in the stylesheet that: has a name which
contains the string 'DebtManagement' and has an attribute called
action with a string value of either 'add' or 'delete'.
Regards,
Ragulf Pickaxe :-)
|