|
Subject: RE: [xsl] copy single node once from one location to another From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Mon, 9 Sep 2002 09:23:21 +0100 |
<xsl:variable name="data-nr" select="/mydoc/specials/data_nr"/>
<xsl:template match="a">
<a>
<xsl:copy-of select="@*"/>
<xsl:copy-of select="node()"/>
<xsl:if test="count(preceding-sibling::a)+1 = $data-text">
<xsl:copy-of select="$data_nr/../data-text"/>
</xsl:if>
</xsl:template>
Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> Thomas Olausson
> Sent: 06 September 2002 22:46
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] copy single node once from one location to another
>
>
> My XML file is being fed to an external system, which I don't
> have control of.
> It adds a "specials"-tag at the end like this: (hardcoded)
>
> <mydoc>
> <a id="ABC">
> <data>100</data>
> <data>101</data>
> </a>
> <a id="DEF">
> <data>200</data>
> <data>201</data>
> </a>
> <specials>
> <data_nr>2</data_nr>
> <data_text>300</data_text>
> </specials>
> </mydoc>
>
> I'd like to write a XSLT that moves the data_text to the
> corresponding index of "a", expressed in data_nr. In the
> above case, /mydoc/a[2]
>
> In the above example, I'd like the output to be
>
> <mydoc>
> <a id="ABC">
> <data>100</data>
> <data>101</data>
> </a>
> <a id="DEF">
> <data>200</data>
> <data>201</data>
> <data>300</data>
> </a>
> <specials>
> <data_nr>2</data_nr>
> <data_text>300</data_text>
> </specials>
> </mydoc>
> I just copied the 300-data to the 2nd 'a', because data_nr was 2.
>
> I know which fields to copy from, and I don't need any error
> checking (in case there are only one a , but data_nr=2 would
> never happen)
>
> I can't change the external system, and in XSLT, I haven't
> figured out to copy the line once. My XSLTs copies them one
> for every data item, even if I match correctly.
>
> /Thomas
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] copy single node once fro, Thomas Olausson | Thread | [xsl] preceding...please help under, Bill Carter |
| [xsl] Newbie: template match using , Palmer Magnus | Date | RE: [xsl] speed questions, Michael Kay |
| Month |