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>
</xsl:if>

or the other way around

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

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

Regards,

Joerg


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:

not(name(*[1]))

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

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





--

System Development
VIRBUS AG
Fon +49(0)341-979-7411
Fax +49(0)341-979-7409
joerg.heinicke@xxxxxxxxx
www.virbus.de

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


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



Current Thread