xsl-list
[Top] [All Lists]

Re: how to match the absence of a particular attribute

2005-05-30 18:00:44
 For example:

<A>
   <B a="a">hello2</B>
   <B a="a" b="b">hello3</B>
   <B>hello1</B>   
   <B b="b">hello4</B>
</A>

1)abscence of "a" attribute 
----------------------------       
      In this case you need to choose the indirect
approach

<xsl:template match="A">
  <xsl:for-each select="B">
   <xsl:choose>
    <xsl:when test="@a != ''"/>
    <xsl:otherwise>                     
        <xsl:copy-of select="."/>
    </xsl:if>
   </xsl:choose>                                
  </xsl:for-each>
</xsl:template>

result: 
<B>hello1</B>
<B b="b">hello4</B>

2)"a" attribute is present but value is empty
---------------------------------------------
example:
<A>
   <B a="a">hello2</B>
   <B a="a" b="b">hello3</B>
   <B a="">hello1</B>   
   <B b="b">hello4</B>
</A>
    In the second case you can go for the direct
approach.

<xsl:template match="A">
   <xsl:for-each select="B">            
     <xsl:if test="@a ='' ">
        <xsl:copy-of select="."/>
     </xsl:if>
   </xsl:for-each>
</xsl:template>

result:
<B a="">hello1</B>


cheers,
Dinesh M.S

-------------------------------------------------------
--- talosso(_at_)gmail(_dot_)com wrote:

Hi,

my problem is different, I need to match a node that
have NOT a
particular 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.

Is it possible to match the absence of an attribute
with xsl?

On 5/30/05, omprakash(_dot_)v(_at_)polaris(_dot_)co(_dot_)in
<omprakash(_dot_)v(_at_)polaris(_dot_)co(_dot_)in> wrote:


Hi,
  Try this:

<xsl:if test="@id">
  <!--   do something if attribute id exists -->
</xsl:if>


Cheers,
prakash




                   <talosso(_at_)gmai
                   l.com>               To:    
XSL List <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
                                        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



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






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



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





                
__________________________________ 
Yahoo! Mail Mobile 
Take Yahoo! Mail with you! Check email on your mobile phone. 
http://mobile.yahoo.com/learn/mail 

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