Re: [xsl]Clarify Add an element to the result xml document

Subject: Re: [xsl]Clarify Add an element to the result xml document
From: Joerg Heinicke <joerg.heinicke@xxxxxx>
Date: Tue, 08 Oct 2002 19:44:17 +0200
Hello Lynda,

then it's easy:

<xsl:template match="MessageID">
  <xsl:copy>
  <!-- here the copy template is applied only to possible attributes -->
    <xsl:apply-templates select="@*"/>
    <xsl:copy>
      <!-- here the copy template is applied to attributes and nodes -->
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:copy>
</xsl:template>

Regards,

Joerg

LVanvleet@xxxxxxxxxx wrote:
To clarify what I need.
This is source XML:

<Order>
	<OrderHeader>
		<OrderNumber>
			<BuyerOrderNumber>3</BuyerOrderNumber>
			<SellerOrderNumber/>
			<ListOfMessageID>
		<!-- one MessageID element -->
				<MessageID>
					<IDNumber/>
					<IDAssignedBy>
						<IDAssignedByCoded/>
						<IDAssignedByCodedOther/>
					</IDAssignedBy>
					<IDAssignedDate/>
				</MessageID>
			</ListOfMessageID>
		</OrderNumber>

This is what I need the result to look like:

<Order>
	<OrderHeader>
		<OrderNumber>
			<BuyerOrderNumber>3</BuyerOrderNumber>
			<SellerOrderNumber/>
			<ListOfMessageID>
		<!-- nested MessageID elements -->
				<MessageID>
				<MessageID>
					<IDNumber/>
					<IDAssignedBy>
						<IDAssignedByCoded/>
						<IDAssignedByCodedOther/>
					</IDAssignedBy>
					<IDAssignedDate/>
				</MessageID>
				</MessageID>
			</ListOfMessageID>
		</OrderNumber>


The Solution from Michael Kay that follows duplicated the MessageID and children: <xsl:template match="MessageID"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> <!-- and again... --> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template>

The Solutions from Joerg adds a <MessageID/> element in place of the child
elements:
<xsl:template match="MessageID">
    <xsl:copy>
      <xsl:copy>
      </xsl:copy>
    </xsl:copy>
</xsl:template>

The burning question is why do I want this.  We receive E-Procurement orders
in xCBL, cXML, etc.  We set up mapping in NetFish to our order response and
back-end.  When we start a new element map in NetFish (now Iona E2A
Integrator) we repeat element tags to show repeating groups of elements.

Thanks again for your help - I have tried so many ways to solve this without
manually adding the tags.
Lynda

Lynda Van Vleet


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


Current Thread