|
|
| SQL Guy 2007-04-25, 6:17 pm |
| I have XML documents in this format.....
<Vessels>
<Vessel VesselID="1" VesselName="First Vessel" LineID="9"
LineName="Celebrity Cruises">
</Vessel>
<Vessel VesselID="2" VesselName="Second Vessel" LineID="9"
LineName="Celebrity Cruises">
</Vessel>
<Vessel VesselID="5" VesselName="Another Vessel" LineID="15" LineName="My
Cruises">
</Vessel>
</Vessels>
There is one to many relationship between Line and Vessel. I need your help
in writing XSLT that will format above XML to.....
<Lines>
<Line>
<LineID>9</LineID>
<LineName>Celebrity Cruises</LineName>
<Vessel>
<VesselID>1</VesselID>
<VesselName>First Vessel</VesselName>
</Vessel>
<Vessel>
<VesselID>2</VesselID>
<VesselName>Second Vessel</VesselName>
</Vessel>
</Line>
<Line>
<LineID>15</LineID>
<LineName>My Cruises</LineName>
<Vessel>
<VesselID>5</VesselID>
<VesselName>Another Vessel</VesselName>
</Vessel>
</Line>
</Lines>
Thanks....
| |
| toudidel 2007-04-25, 6:17 pm |
| show what you're doing, some example. in what have you problem?
td
| |
| Dimitre Novatchev 2007-04-26, 3:23 am |
| You need to read about grouping in XSLT.
This will definitely be helpful:
http://www.jenitennison.com/xslt/grouping/
Cheers,
Dimitre Novatchev
"SQL Guy" <SQLGuy@discussions.microsoft.com> wrote in message
news:E7FA9081-889F-4F91-BCA6-D52EEAC1E780@microsoft.com...
>I have XML documents in this format.....
>
> <Vessels>
> <Vessel VesselID="1" VesselName="First Vessel" LineID="9"
> LineName="Celebrity Cruises">
> </Vessel>
> <Vessel VesselID="2" VesselName="Second Vessel" LineID="9"
> LineName="Celebrity Cruises">
> </Vessel>
> <Vessel VesselID="5" VesselName="Another Vessel" LineID="15" LineName="My
> Cruises">
> </Vessel>
> </Vessels>
>
> There is one to many relationship between Line and Vessel. I need your
> help
> in writing XSLT that will format above XML to.....
>
> <Lines>
> <Line>
> <LineID>9</LineID>
> <LineName>Celebrity Cruises</LineName>
> <Vessel>
> <VesselID>1</VesselID>
> <VesselName>First Vessel</VesselName>
> </Vessel>
> <Vessel>
> <VesselID>2</VesselID>
> <VesselName>Second Vessel</VesselName>
> </Vessel>
> </Line>
> <Line>
> <LineID>15</LineID>
> <LineName>My Cruises</LineName>
> <Vessel>
> <VesselID>5</VesselID>
> <VesselName>Another Vessel</VesselName>
> </Vessel>
> </Line>
> </Lines>
>
> Thanks....
| |
|
| Hi,
Try something like...
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:key name="kVesselID" match="Vessel" use="@LineID"/>
<xsl:template match="/">
<Lines>
<xsl:for-each select="Vessels/Vessel[generate-id() =
generate-id(key('kVesselID',@LineID))]">
<Line>
<LineID>
<xsl:value-of select="@LineID"/>
</LineID>
<LineName>
<xsl:value-of select="@LineName"/>
</LineName>
<xsl:apply-templates select="key('kVesselID',@LineID)"/>
</Line>
</xsl:for-each>
</Lines>
</xsl:template>
<xsl:template match="Vessel">
<Vessel>
<VesselID>
<xsl:value-of select="@VesselID"/>
</VesselID>
<VesselName>
<xsl:value-of select="@VesselName"/>
</VesselName>
</Vessel>
</xsl:template>
</xsl:stylesheet>
HTH
M
"SQL Guy" <SQLGuy@discussions.microsoft.com> wrote in message
news:E7FA9081-889F-4F91-BCA6-D52EEAC1E780@microsoft.com...
> I have XML documents in this format.....
>
> <Vessels>
> <Vessel VesselID="1" VesselName="First Vessel" LineID="9"
> LineName="Celebrity Cruises">
> </Vessel>
> <Vessel VesselID="2" VesselName="Second Vessel" LineID="9"
> LineName="Celebrity Cruises">
> </Vessel>
> <Vessel VesselID="5" VesselName="Another Vessel" LineID="15" LineName="My
> Cruises">
> </Vessel>
> </Vessels>
>
> There is one to many relationship between Line and Vessel. I need your
help
> in writing XSLT that will format above XML to.....
>
> <Lines>
> <Line>
> <LineID>9</LineID>
> <LineName>Celebrity Cruises</LineName>
> <Vessel>
> <VesselID>1</VesselID>
> <VesselName>First Vessel</VesselName>
> </Vessel>
> <Vessel>
> <VesselID>2</VesselID>
> <VesselName>Second Vessel</VesselName>
> </Vessel>
> </Line>
> <Line>
> <LineID>15</LineID>
> <LineName>My Cruises</LineName>
> <Vessel>
> <VesselID>5</VesselID>
> <VesselName>Another Vessel</VesselName>
> </Vessel>
> </Line>
> </Lines>
>
> Thanks....
|
|
|
|
| Copyright 2003 - 2008 forum4designers.com Software forum Computer Hardware reviews |