Re: [xsl] [XPath] Type of the first child

Subject: Re: [xsl] [XPath] Type of the first child
From: Jörg Heinicke <joerg.heinicke@xxxxxx>
Date: Tue, 27 Nov 2001 16:44:19 +0100
Hi Julien,

I can't imagine, that your not(name(*[1])) should work, because you are testing whether the first element '*[1]' has a name or not - nothing about text-nodes. You have to test the first node(), not the first element.

My solution:

<xsl:if test="node()[1][self::text()]">
   <xsl:text>It's a text-node.</xsl:text>

or the other way around

<xsl:if test="node()[1][self::*]">
   <xsl:text>It's an element.</xsl:text>

Of course this should work in xsl:choose/xsl:when too.



Julien Quint wrote:

Hi all,

I have an XPath question, really. In a pattern, I want to take a different
action if the first child of my element is a text node or an element. I
wrote the following predicate, which is to be true if the first child is a
text node:


It seems to work, but is this correct? Is there a better way to write this?
Thanks -- Julien

XSL-List info and archive:


System Development
Fon +49(0)341-979-7411
Fax +49(0)341-979-7409

Cocoon-Premiere - Virbus AG setzt bei ShoppingMall-Plattform "Lofex"
auf neueste XML-basierende Technologie

XSL-List info and archive:

Current Thread