Re: [xsl] How to copy only the really existing <choice> branch/element? "value-of-if-exist"

Subject: Re: [xsl] How to copy only the really existing <choice> branch/element? "value-of-if-exist"
From: "Ben Stover" <bxstover@xxxxxxxxxxx>
Date: Wed, 07 Oct 2009 15:16:52 +0200
You are right.
I simplified too much :-)

But your solution is perfect for me

Thank you
BS


On Wed, 7 Oct 2009 13:24:41 +0100, David Carlisle wrote:


>>   If I simply write:
>> 
>> <xsl:value-of select=".../aaa"/>
>> <xsl:value-of select=".../bbb"/>
>> <xsl:value-of select=".../ccc"/>

>> then ALL three elements were copied.
>As Martin just said, xsl:value-of never copies elements.

>I suspect you dod not simply write that but instead wrote

>If I simply write:

><aaa>
><xsl:value-of select=".../aaa"/>
></aaa>
><bbb>
><xsl:value-of select=".../bbb"/>
></bbb>
><ccc>
><xsl:value-of select=".../ccc"/>
></ccc>

>in which case the elements are not made by the value-of, they are made
>by the literal result elements.

>don't do that, just do

><xsl:copy-of select=".../top/*"/>

>which will copy the child element of top which according to your schema
>fragment must be aaa, bbb or ccc.

>If the content of top had been more complicated but you just wanted
>aaa,bbb or ccc then you could do



><xsl:copy-of select=".../top/(aaa|bbb|ccc)"/>


>or (if you are still using xslt 1)


><xsl:copy-of select=".../top/*[self::aa or self::bbb or self::ccc]"/>


>David

>________________________________________________________________________
>The Numerical Algorithms Group Ltd is a company registered in England
>and Wales with company number 1249803. The registered office is:
>Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

>This e-mail has been scanned for all viruses by Star. The service is
>powered by MessageLabs. 
>________________________________________________________________________

Current Thread