This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: order update


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]