Tuesday, September 7, 2010

sorting the xml using xslt file in asp.net

function which used in c# file

private static XDocument SortUserInfo(XmlDocument UserInfo)
    {
      
        XmlDocument sortedXml = new XmlDocument();
        XslCompiledTransform proc = new XslCompiledTransform();
      
        proc.Load("C:\\Users\\graycell\\Desktop\\MultiHandleSliderExtender_w_Chart\\MultiHandleSliderExtender_w_Chart\\App_Data\\XSLTFile.xslt");
        using (XmlWriter writer = sortedXml.CreateNavigator().AppendChild())
        {
            proc.Transform(UserInfo, writer);
        }
        string sorted = sortedXml.InnerXml;
        return XDocument.Parse(sorted);
    }
-------------------------------------------------------------------------------------------------

xml file-----

<?xml version="1.0" encoding="utf-8" ?>

<?xml-stylesheet type="text/xsl" href="XSLTFile.xslt"?>


<CarsList>
  <Car Date="01/01/2005" YearMonth="200501" CarBrand="Audi" Count="15" />
  <Car Date="01/02/2005" YearMonth="200501" CarBrand="Audi" Count="20" />
  <Car Date="01/03/2005" YearMonth="200501" CarBrand="Audi" Count="15" />
  <Car Date="01/04/2005" YearMonth="200501" CarBrand="Audi" Count="20" />
  <Car Date="01/05/2005" YearMonth="200501" CarBrand="Audi" Count="15" />
  <Car Date="01/06/2005" YearMonth="200501" CarBrand="Audi" Count="20" />
  <Car Date="01/07/2005" YearMonth="200501" CarBrand="Audi" Count="15" />
  <Car Date="01/08/2005" YearMonth="200501" CarBrand="Audi" Count="20" />
  <Car Date="01/09/2005" YearMonth="200501" CarBrand="Audi" Count="15" />
  <Car Date="01/10/2005" YearMonth="200501" CarBrand="Audi" Count="20" />
  <Car Date="01/11/2005" YearMonth="200501" CarBrand="Audi" Count="15" />
  <Car Date="01/12/2005" YearMonth="200501" CarBrand="Audi" Count="20" />
  <Car Date="01/13/2005" YearMonth="200501" CarBrand="Audi" Count="15" />
  <Car Date="01/14/2005" YearMonth="200501" CarBrand="Audi" Count="20" />
  <Car Date="01/15/2005" YearMonth="200501" CarBrand="Audi" Count="15" />
  <Car Date="01/16/2005" YearMonth="200501" CarBrand="Audi" Count="20" />
</CarsList>

----------------------------------------------------------------------------------------------------

xslt file-----------------------

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
   
  <xsl:output method="xml" indent="yes"/>

    <xsl:template match="/">

      <CarsList>     
          <xsl:for-each select="CarsList/Car">
            <xsl:sort select="current()/@CarBrand" order ="descending" />
            <Car>
              <xsl:attribute name="Date">
                <xsl:value-of select="current()/@Date"/>
              </xsl:attribute>
              <xsl:attribute name="CarBrand">
                <xsl:value-of select="current()/@CarBrand"/>
               
              </xsl:attribute>
              <xsl:attribute name="YearMonth">
                <xsl:value-of select="current()/@YearMonth"/>
              </xsl:attribute>
             
              <xsl:attribute name="Count">
                <xsl:value-of select="current()/@Count"/>
              </xsl:attribute>
             
            </Car>       
          </xsl:for-each>
      </CarsList>
     
  </xsl:template>

</xsl:stylesheet>





 

No comments:

Post a Comment