This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: How to map XML to XML according to element values
- From: Jörg Heinicke <joerg dot heinicke at gmx dot de>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 26 Nov 2001 21:50:11 +0100
- Subject: Re: [xsl] How to map XML to XML according to element values
- References: <OFD2687B93.5168560B-ON88256B10.00624F86@tms.toyota.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
<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