RE: [xsl] Applying child nodes in a substringed node

Subject: RE: [xsl] Applying child nodes in a substringed node
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 20 Jun 2007 09:23:34 +0100
I can't see how you get that output: there is nothing in your stylesheet
that applies templates to the child node or that outputs a <child> element.

I'm guessing that what you want to do is to remove the number at the start
of the first text node of the parent element:

<xsl:template match="parent">
 <list><xsl:apply-templates/></list>
</xsl:template> 

<xsl:template match="parent/text()[1]">
 <xsl:value-of select="substring-after(normalize-space(.), ' ')"/>
</xsl:template> 

<xsl:template match="child">
 <strong><xsl:apply-templates/></strong>
</xsl:template> 

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: e107lac [mailto:e107lac@xxxxxxxxx] 
> Sent: 20 June 2007 09:13
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Applying child nodes in a substringed node
> 
> Hi list!
> 
> Please help me, how can I applying the child nodes, if I 
> substring the parent node.
> Example
> XML
> -----
> <?xml version="1.0" encoding="utf-8" ?>
> <root>
> <parent>
>     1. Lorem ipsum dolor sit amet, consectetuer 
> <child>adipiscing elit.</child> </parent> </root>
> 
> XSL
> -----
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
> version="2.0">
>     <xsl:output method="xml"
>                 indent="yes"
>                 encoding="UTF-8"/>
> 
> <xsl:template match="root">
>     <xsl:apply-templates/>
> </xsl:template>
> 
> <xsl:template match="parent">
>     <xsl:element name="list"
>         <xsl:value-of 
> select="substring-after(normalize-space(.), ' ')"/>
>     </xsl:element>
> </xsl:template>
> 
> <xsl:template match="child">
>     <xsl:element name="strong">
>        <xsl:apply-templates/>
>     </xsl:element>
> </xsl:template>
> 
> 
> This transfromation generate this
> 
> <?xml version="1.0" encoding="UTF-8"?>
>     <list>Lorem ipsum dolor sit amet, consectetuer 
> <child>adipiscing elit.</child></list>
> 
> the child element don't applying because the parent return a string.
> 
> Sorry for my English.

Current Thread