Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Re: rearranging xmls tructure depending on sub object >Thread Next - Re: rearranging xmls tructure depending on sub object Re: rearranging xmls tructure depending on sub objectTo: NULL Date: 8/25/2009 6:11:00 PM erik wrote: > On 25 Aug, 16:06, Martin Honnen <mahotr...@yahoo.de> wrote: >> It is a grouping problem that can be solved in XSLT 2.0 with >> xsl:for-each-group and with XSLT 1.0 using Muenchian grouping. >> Do you use or want to use XSLT 2.0 or 1.0? 2.0 is available with Saxon 9 >> or with AltovaXML tools or with XML editors like Oxygen or Altova XML >> Spy or Stylus Studio, XSLT 1.0 is available with Microsoft MSXML 3 and >> later and with .NET's XslCompiledTransform. >> Let us know which version you use/want to use. > As long as I can incorporate it in my wcf service (dotnet 3.5 C# > project) it doesn't matter. I'm grateful for any solution to this > problem. Here is an XSLT 2.0 stylesheet: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="ArrayOfWorkShift"> <Array> <xsl:for-each-group select="WorkShift" group-by="Person/Name"> <Person> <xsl:copy-of select="Person/Name"/> <xsl:for-each-group select="current-group()" group-by="WorkPlace/Id"> <xsl:sort select="WorkPlace/Id" data-type="number"/> <WorkPlace> <xsl:copy-of select="WorkPlace/Id"/> <xsl:for-each select="current-group()"> <WorkShift> <xsl:copy-of select="StartTime, EndTime"/> </WorkShift> </xsl:for-each> </WorkPlace> </xsl:for-each-group> </Person> </xsl:for-each-group> </Array> </xsl:template> </xsl:stylesheet> To use that within a .NET application you need to install Saxon 9 from http://saxon.sourceforge.net/. It has lots of documentation, in addition http://www.xmlplease.com/saxonaspnet might be of help for a quick start. -- Martin Honnen --- MVP XML http://msmvps.com/blogs/martin_honnen/ | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
