Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > XML > Sorting XML into a Hierarchy

Reply
Thread Tools

Sorting XML into a Hierarchy

 
 
csharp
Guest
Posts: n/a
 
      08-04-2006
I am generating an xml file off an employees table from a database to
use to databind a treeview to on a master page rather than call the db
every time the page loads.

I need to take this XML and sort it hierarchially so when the treeview
gets it, it shows all employees sorted with child nodes for employees
who report to them, etc.

I have never worked with XML but found enough online to assume an xsl
file would do the trick, provided it was written correctly.

What I have so far, thats not working, is this.




CODE TO GENERATE XML FILE FROM DB

DataSet SQLDataset = new DataSet("Employees");
SqlDataAdapter DBAdapter = new SqlDataAdapter("Select * FROM
tm2Employee", dbConn);
DBAdapter.Fill(SQLDataset);
SQLDataset.WriteXml(System.AppDomain.CurrentDomain .BaseDirectory +
"xml.xml", XmlWriteMode.WriteSchema);

//sort the XML Hierarchically
XslCompiledTransform xsltransform = new XslCompiledTransform();
xsltransform.Load(System.AppDomain.CurrentDomain.B aseDirectory +
"xsl.xsl");
xsltransform.Transform(System.AppDomain.CurrentDom ain.BaseDirectory +
"xml.xml", System.AppDomain.CurrentDomain.BaseDirectory + "xml2.xml2");


SAMPLE OF XML FILE GENERATED

<Employees>
<Table>
<LoginID>LEGAL\SmithJS</LoginID>
<EmployeeName>Smith, John</EmployeeName>
<EmployeeID>111111</EmployeeID>
<DOB>1980-07-23T00:00:00-04:00</DOB>
<AuthLevel>3</AuthLevel>
<ReportsTo>222222</ReportsTo>
</Table>
</Employees>



XSL FILE

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlnssl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="ReportsTo" match="Employee" use="@ReportsTo"/>
<xsl:template match="/">
<Employee>
<xsl:for-each select="key('ReportsTo','0')">
<xsl:call-template name="recurse"/>
</xsl:for-each>
</Employee>
</xsl:template>
<xsl:template name="recurse">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:if test="key('ReportsTo',@id)">
<Employee>
<xsl:for-each select="key('ReportsTo',@id)">
<xsl:call-template name="recurse"/>
</xsl:for-each>
</Employee>
</xsl:if>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>




ENVIRONMENT

ASP.net 2.0
MSSQL Server 2000
Windows Server (unsure of version)

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Formatting vertically liner xml doc to hierarchy format dynamically in any depth. Bostonasian XML 8 02-15-2007 11:21 PM
Deepening an XML hierarchy Juho Jussila XML 6 07-15-2005 06:32 AM
Flat to Hierarchy XML gsoftwares@gmail.com XML 7 12-10-2004 10:45 PM
Tools to extract data from SQL database and convert it into XML & insert XML data into SQL databases Harry Zoroc XML 1 07-12-2004 10:10 PM
how to write some xml into huge xml file into speceific location??? Xenia XML 4 11-25-2003 07:14 PM



Advertisments