|
Subject: Re: [xsl] Merge 2 xmls : Loop through one xml and get elements from second xml From: "Prady Prady prady.chin@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 1 Sep 2020 15:12:10 -0000 |
Thank you, Martin. I will try this.
On Tue, 1 Sep 2020 at 10:57, Martin Honnen martin.honnen@xxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> Am 01.09.2020 um 15:51 schrieb Prady Prady prady.chin@xxxxxxxxx:
> > Is there any other simpler way..
>
> What do you consider simple or simpler? Using XSLT 2 or 3? Sure, go ahead
>
> <xsl:template match="order">
> <xsl:copy>
> <xsl:apply-templates select="@* | node(), key('order',
> $ordernumber, $doc2)/amount"/>
> </xsl:copy>
> </xsl:template>
>
> >
> > All I have to do is:
> >
> > Loop thru first xml:
> > add elements from first xml
> > get "amount" from second xml where order number matches and create this
> > Or
> >
> > Can you explain what is being done?
>
> The suggested approach processes the first XML with the identity
> transformation to copy everything, with the exception of of the "order"
> elements, where it additionally gets the "amount" from the second XML,
> using a key to establish the match and selection based on the order number.
>
>
> > > But I need to use only XSLT 1.0
> >
> > Declare
> >
> > <xsl:param name="doc2" select="document('Orders_Part2.xml')"/>
> >
> > and a key
> >
> > <xsl:key name="order" match="order" use="order_number"/>
> >
> > then use
> >
> > <xsl:template match="order">
> > <xsl:copy>
> > <xsl:apply-templates select="@* | node()"/>
> > <xsl:variable name="ordernumber" select="order_number"/>
> > <xsl:for-each select="$doc2">
> > <xsl:apply-templates select="key('order',
> > $ordernumber)/amount"/>
> > </xsl:for-each>
> > </xsl:copy>
> > </xsl:template>
> >
> > plus the identity transformation
> >
> > <xsl:template match="@* | node()">
> > <xsl:copy>
> > <xsl:apply-templates select="@* | node()"/>
> > </xsl:copy>
> > </xsl:template>
> >
> >
> >
> > >>> =================
> > >>> Merge 2 xmls : Loop through one xml and get elements from
> > second xml
> > >>>
> > >>> I have 2 xmls(Orders_Part1.xml,Orders_Part2.xml). I have to
> > build the
> > >>> 3rd xml ( Orders.xml) .
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Merge 2 xmls : Loop throu, Martin Honnen martin | Thread | Re: [xsl] Merge 2 xmls : Loop throu, Prady Prady prady.ch |
| Re: [xsl] Merge 2 xmls : Loop throu, Liam R. E. Quin liam | Date | [xsl] XSL-List Guidelines, B Tommie Usdin btusd |
| Month |