This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: order update
- From: "Joerg Heinicke" <joerg dot heinicke at gmx dot de>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Tue, 26 Mar 2002 21:38:13 +0100
- Subject: Re: [xsl] order update
- References: <837681688.1017155164953.JavaMail.Administrator@dumbo>
- Reply-to: xsl-list at lists dot mulberrytech dot com
XML:
<root>
<order ordernr="100">
<orderline orderlinenr="1">
<art>1</art>
</orderline>
</order>
<order ordernr="101">
<orderline orderlinenr="1">
<art>1</art>
</orderline>
</order>
<order ordernr="102">
<orderline orderlinenr="1">
<art>1</art>
</orderline>
</order>
</root>
order.xml
<root>
<order ordernr="101">
<orderline orderlinenr="2">
<art>50</art>
</orderline>
<orderline orderlinenr="3">
<art>60</art>
</orderline>
</order>
</root>
XSL
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:variable name="file" select="document('order.xml')"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="order">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="orderline |
$file/root/order[@ordernr=current()/@ordernr]/orderline">
<xsl:sort select="@orderlinenr"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Output
<root>
<order ordernr="100">
<orderline orderlinenr="1">
<art>1</art>
</orderline>
</order>
<order ordernr="101">
<orderline orderlinenr="1">
<art>1</art>
</orderline>
<orderline orderlinenr="2">
<art>50</art>
</orderline>
<orderline orderlinenr="3">
<art>60</art>
</orderline>
</order>
<order ordernr="102">
<orderline orderlinenr="1">
<art>1</art>
</orderline>
</order>
</root>
Hope this helps,
Joerg
> i have an xml that contains 1 orderline of order 100
>
> <order ordernr="100">
> <orderline orderlinenr="1">
> <art>1</art>
> </orderline>
> </orderline>
>
> now i want to add new orderlines from an update.xml file
> which contains
>
> <order ordernr="100">
> <orderline orderlinenr="2">
> <art>50</art>
> </orderline>
> <orderline orderlinenr="3">
> <art>60</art>
> </orderline>
> </orderline>
>
> How do i put these 2 together without loosing the first orderline that is
already in this order.
>
> output xml should be
>
> <order ordernr="100">
> <orderline orderlinenr="1">
> <art>1</art>
> </orderline>
> <orderline orderlinenr="2">
> <art>50</art>
> </orderline>
> <orderline orderlinenr="3">
> <art>60</art>
> </orderline>
> </orderline>
>
> thanks
> pGl
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list