This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [XPath] Type of the first child


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@virbus.de
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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]