[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Get children and text, excluding a child


Subject: Re: [xsl] Get children and text, excluding a child
From: "John Lumley john@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 12 Jun 2015 20:55:56 -0000

Try using
        (*|text()) except number

Sent from my iPad

> On 12 Jun 2015, at 21:50, Rick Quatro rick@xxxxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> I think I figured it out:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>    exclude-result-prefixes="xs"
>    version="2.0">
>
>    <xsl:output method="xml" indent="yes"/>
>
>    <xsl:template match="/root">
>        <root>
>            <xsl:for-each select="span">
>                <span><xsl:copy-of
select="*[not(self::number)]|text()"/></span>
>            </xsl:for-each>
>        </root>
>    </xsl:template>
>
> </xsl:stylesheet>
>
> -----Original Message-----
> From: Rick Quatro rick@xxxxxxxxxxxxxx
[mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx]
> Sent: Friday, June 12, 2015 4:45 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Get children and text, excluding a child
>
> Hello,
>
> Here is my input xml:
>
> <?xml version="1.0"?>
> <root>
>  <span><number>9.3</number> <code>protected</code> members</span>
>  <span><number>9.4</number> miscellaneous members.</span> </root>
>
> Here is the desired output:
>
> <?xml version="1.0"?>
> <root>
>  <span> <code>protected</code> members</span>
>  <span> miscellaneous members.</span>
> </root>
>
> I want to output all of the elements and text of the original <span>
element, but without the <number> element. I am using this for my xsl:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>    exclude-result-prefixes="xs"
>    version="2.0">
>
>    <xsl:output method="xml" indent="yes"/>
>
>    <xsl:template match="/root">
>        <root>
>            <xsl:for-each select="span">
>                <xsl:copy-of select="descendant::*[not(self::number)]"/>
>            </xsl:for-each>
>        </root>
>    </xsl:template>
>
> </xsl:stylesheet>
>
> This is my current (incorrect) output:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <root>
>   <code>protected</code>
> </root>
>
> Any help or pointers would be appreciated. Thanks.
>
> Rick Quatro
> Carmen Publishing Inc.
> 585-366-4017
> rick@xxxxxxxxxxxxxxx


Current Thread