Subject: Re: [xsl] moving an element and then converting it to an attribute From: Michael Müller-Hillebrand <mmh@xxxxxxxxx> Date: Thu, 16 Aug 2012 11:35:08 +0200 |
Hi Jonina, in a template for <media> just pull in the value of <image-size> like this: <xsl:template match="media"> <xsl:copy> <xsl:apply-templates select="@*" /> <xsl:attribute name="image-size" select="normalize-space(..//image-size[1])"/> </xsl:copy> </xsl:template> This assumes that <media> is an empty element. As <image-size> is not a sibling of <media> I go to the parent element (..) and search all descendants (//) for <image-size>. In case there are multiple <image-size> present I just use the first instance as otherwise the normalize-space() function would create a run-time error. - Michael Am 15.08.2012 um 20:13 schrieb Jonina Dames: > Hi, I'm pretty new to XSLT and I'm having some trouble with a project. > > I have the following XML: > > <media.block id="fun1"> > <caption> > <para> > <txt> > <image-size> > spread > </image-size> > </txt> > </para> > </caption> > <media filename="1234567"/> > </media.block> > > What I want is to turn the image-size node into an attribute of the media element, so it looks like this: > > <media.block id="fun1"> > <caption> > <para> > <txt> > <image-size> > spread > </image-size> > </txt> > </para> > </caption> > <media filename="0801_75750-rm" image-size="spread"/> > </media.block> > > But I keep getting stuck. I was thinking I might need to move the image-size node somewhere before I could turn it into an attribute of the media element? Can anyone help me with this? I'm just using version 1, not 2. > > Thanks, > Joni > -- DOCUFY GmbH Michael M|ller-Hillebrand | Senior Consultant www.docufy.de
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] moving an element and the, Wendell Piez | Thread | Re: [xsl] moving an element and the, Wendell Piez |
Re: [xsl] Running out of Memory, Michael Kay | Date | RE: [xsl] Process following sibling, Kerry, Richard |
Month |