Subject: Re: [xsl] How to copy only the really existing <choice> branch/element? "value-of-if-exist" From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 7 Oct 2009 13:24:41 +0100 |
> 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] How to copy only the real, G. Ken Holman | Thread | Re: [xsl] How to copy only the real, Ben Stover |
Re: [xsl] key declarations (using a, Andy Chambers | Date | RE: [xsl] How to copy only the real, Michael Kay |
Month |