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: How to map XML to XML according to element values


    <xsl:template match="node()">
        <xsl:copy>
            <xsl:apply-templates select="node()[name() != 'Employees']"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="Department">
        <xsl:copy>
            <xsl:apply-templates select="node()"/>
            <xsl:apply-templates select="/Company/Employees/Employee[Dept =
current()/DeptCode]"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="Employee">
        <xsl:copy>
            <xsl:apply-templates select="node()[name() != 'Dept']"/>
        </xsl:copy>
    </xsl:template>

Regards,

Joerg

----- Original Message -----
From: <Roy_Lu@notes.toyota.com>
To: <XSL-List@lists.mulberrytech.com>
Sent: Monday, November 26, 2001 7:25 PM
Subject: [xsl] How to map XML to XML according to element values


> Hi, I am new to the list and I have searched the archive but couldn't find
> an answer.
>
> I have the following XML,
>
> <Company>
>   <Departments>
>     <Department>
>       <DeptCode>D1</DeptCode>
>       <Name>Engineering</Id>
>     </Department>
>     <Department>
>       <DeptCode>D2</DeptCode>
>       <Name>Custom Support</Name>
>     </Department>
>   </Departments>
>   <Employees>
>     <Employee>
>       <EmpNo>E1</EmpNo>
>       <Name>John Smith</Name>
>       <Dept>D1</Dept>
>     </Employee>
>     <Employee>
>       <EmpNo>E2</EmpNo>
>       <Name>Mary Johnson</Name>
>       <Dept>D2</Dept>
>     </Employee>
>     <Employee>
>       <EmpNo>E3</EmpNo>
>       <Name>Tom Baker</Name>
>       <Dept>D1</Dept>
>     </Employee>
>   </Employees>
> </Company>
>
> I would like to transform it into another XML, by matching <DeptCode> in
<Department> to <Dept> in <Employee>.  The output XML should look like:
>
> <Company>
>   <Departments>
>     <Department>
>       <DeptCode>D1</DeptCode>
>       <Name>Engineering</Id>
>       <Employee>
>         <EmpNo>E1</EmpNo>
>         <Name>John Smith</Name>
>       </Employee>
>       <Employee>
>         <EmpNo>E3</EmpNo>
>         <Name>Tom Baker</Name>
>       </Employee>
>     </Department>
>     <Department>
>       <DeptCode>D2</DeptCode>
>       <Name>Custom Support</Name>
>       <Employee>
>         <EmpNo>E2</EmpNo>
>         <Name>Mary Johnson</Name>
>       </Employee>
>     </Department>
>   </Departments>
> </Company>
>
> Can someone give me an advice? Thanks a lot.
>
> Roy
>
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>


 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]