xsl-list
[Top] [All Lists]

Re: generate full xpath name to an attribute?

2003-04-01 01:36:05

   yes and  tried doing that with if's. i found some stuff in the archives 
   about determining whether something is an element or an attribute at 
   http://www.biglist.com/lists/xsl-list/archives/200212/msg00523.html and 
   http://www.biglist.com/lists/xsl-list/archives/200212/msg00518.html

   <xsl:if test="../@*/.">
   <xsl:if test="../@*">
   count(. | ../@*) = count(../@*)

   none of these seem to work very well.

It's not surprising they don't work, if you read the messages you quoted
you'd see that they are replies explaining that the suggested code was wrong.

test="../@*/." is the same as test="../@*" and tests to see if your
parent has any attributes.

Ieven if you were using correct code to distinguish elements from
attributes (eg self::* is true for elements and false for attributes)
                        <xsl:if test="../@*/.">
                         <xsl:text>@</xsl:text>
                         </xsl:if>
                         <xsl:if test="not(../@*/.)">
                         <xsl:text>/</xsl:text>
                         </xsl:if>

would be the wrong thing to do as even for attributes you need a /
between steps, so that should not be conditional, the only conditional
part needs to be whether to use a @ on the last step. But several full
solutions to this problem are in the archives and the faq.


David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list