xml to treeview using dataset

Quien2

New Member
I have an xml file with following structure:\[code\]<table name="tblcats"> <row> <Id>3680</Id> <Industry>Associations</Industry> <ParentId>1810</ParentId> </row> <row> <Id>1592</Id> <Industry>Fortune 100</Industry> <ParentId>1810</ParentId> </row> <row></table>\[/code\]I want to populate a treeview using this xml. I have created a dataset and sorted it and written following code:\[code\] Dim xmlfile As String = Server.MapPath("~/App_Data/Industries.xml") Dim ds As New DataSet() ds.ReadXml(xmlfile) Dim sortedRows As DataRow() sortedRows = ds.Tables(1).Select("", "ParentId") Dim XDoc As New XmlDocument() Dim XDec As XmlDeclaration = XDoc.CreateXmlDeclaration("1.0", Nothing, Nothing) XDoc.AppendChild(XDec) ' iterate through the sorted data ' and build the XML document For Each Row As DataRow In sortedRows ' create an element node to insert ' note: Element names may not have spaces so use ID ' note: Element names may not start with a digit so add underscore Dim NewNode As XmlElement = XDoc.CreateElement("_" & Row("Id").ToString()) NewNode.SetAttribute("Id", Row("Id").ToString()) NewNode.SetAttribute("ParentId", Row("ParentId").ToString()) NewNode.SetAttribute("Industry", Row("Industry").ToString()) ' special case for top level node If CInt(Row("ParentId")) = -1 Then XDoc.AppendChild(NewNode) Else ' root node ' use XPath to find the parent node in the tree Dim SearchString As [String] SearchString = [String].Format("//*[@Id=""{0}""] ", Row("ParentId").ToString()) Dim Parent As XmlNode = XDoc.SelectSingleNode(SearchString) If Parent IsNot Nothing Then Parent.AppendChild(NewNode) Else ' Handle Error: Employee with no boss End If End If Next ' we cannot bind the TreeView directly to an XmlDocument ' so we must create an XmlDataSource and assign the XML text Dim XDdataSource As New XmlDataSource() XDdataSource.ID = DateTime.Now.Ticks.ToString() ' unique ID is required XDdataSource.Data = http://stackoverflow.com/questions/10603269/XDoc.OuterXml' we want the full name displayed in the tree so ' do custom databindings Dim Binding As New TreeNodeBinding() Binding.TextField = "FullName" Binding.ValueField = "ID" TreeView1.DataBindings.Add(Binding) ' Finally! Hook that bad boy up! TreeView1.DataSource = XDdataSource TreeView1.DataBind()\[/code\]but It fails here:\[code\] SearchString = [String].Format("//*[@Id=""{0}""] ", Row("ParentId").ToString())\[/code\]How can I fix this xPath to match my XML ? Please suggest how can I fix this issue
 
Back
Top