Subject: RE: Add an element to the result xml document
From: LVanvleet@xxxxxxxxxx
Date: Mon, 7 Oct 2002 16:06:22 -0500
|
Joerg,
Thanks for your timely reply. I understand you technique but that puts an
entire duplicate<MessageID>...</MessageID> following the current
<MessageID>...</MessageID>
I need just of copy of the element <MessageID> following the source
<MessageID> and </Message> following the source </MessageID>
Sorry I wasn't very clear.
Lynda
-----Original Message-----
From: Joerg Heinicke [mailto:joerg.heinicke@xxxxxx]
Sent: Monday, October 07, 2002 3:32 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: Add an element to the result xml document
Hello Lynda,
hmm, I are copying in the wrong way. From the root context you are
copying everything, you should copy node by node. You can read at
http://www.w3.org/TR/xslt#copying how identity transformation can look like:
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
Then you only need to add further template matching on <MessageID/> and
say there, that you want to have it twice in the output:
<xsl:template match="MessageID">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
Regards,
Joerg
LVanvleet@xxxxxxxxxx wrote:
> I have sucessfully copied all the elements in source xml to result xml but
I
> also want duplicates of some elements. In the partial xml doc below I
want
> the result to contain two copies of the <MessageID> and </MessageID>
> elements.
>
> I am using this XSLT:
>
> <?xml version='1.0'?>
> <xsl:transform version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="xml" indent="yes"/>
>
> <!-- copy all the elements to the result document -->
> <xsl:template match="/">
> <xsl:copy-of select="."/>
> </xsl:template>
>
> <xsl:template match="Order">
> <xsl:apply-templates/>
> </xsl:template>
>
> <xsl:template match="//ListOfMessageID/MessageID">
> <!-- add an extra <MessageID> and </MessageID> element -->
> <xsl:element name="MessageID"/>
> <xsl:apply-templates select="node()"/>
> </xsl:template>
>
> </xsl:transform>
>
> On a document that starts with the elements:
>
> <?xml version="1.0"?>
> <!-- Exostar xCBL 3.0 Order ICD -->
> <Order>
> <OrderHeader>
> <OrderNumber>
> <BuyerOrderNumber>3</BuyerOrderNumber>
> <SellerOrderNumber/>
> <ListOfMessageID>
> <MessageID>
> <IDNumber/>
> <IDAssignedBy>
> <IDAssignedByCoded/>
> <IDAssignedByCodedOther/>
> </IDAssignedBy>
> <IDAssignedDate/>
> </MessageID>
> </ListOfMessageID>
> </OrderNumber>
>
> Lynda Van Vleet
> E-Procurement Technical Specialist
>
> Newark Electronics
> 4801 North Ravenswood Avenue
> Chicago IL 60640-4496
> 773 907 5919
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|