Click here to Skip to main content
15,893,594 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,

I have below xml. But when I try to load into datagridview, it doesn't work.
XML
<Records>
 <Record>
 <Product>
  <Column name="Serial">N110879987</Column>
  <Column name="Product">QWX4T6YU</Column>
  <Column name="Date">2012-08-10</Column>
 </Product>
 <Operations>
 <Operation type="SETUP">
  <Column name="TimeStamp">2012-08-10</Column>
  <Column name="Status">Success</Column>
 </Operation>
 <Operation type="RUN">
  <Column name="TimeStamp">2012-08-11</Column>
  <Column name="Status">Done</Column>
 </Operation>
 </Operations>
</Record>
 <Record>
 <Product>
  <Column name="Serial">N110879988</Column>
  <Column name="Product">QWX4T6YU</Column>
  <Column name="Date">2012-08-12</Column>
 </Product>
 <Operations>
 <Operation type="SETUP">
  <Column name="TimeStamp">2012-08-12</Column>
  <Column name="Status">Success</Column>
 </Operation>
 <Operation type="RUN">
  <Column name="TimeStamp">2012-08-12</Column>
  <Column name="Status">Done</Column>
 </Operation>
 </Operations>
</Record>
</Records>


Below is my code, it doesn't work..

VB
Dim dt As New DataTable
Dim newRow As DataRow
Dim ds As New DataSet()
Dim doc As New Xml.XmlDocument
doc.Load("C:\Temp\N11.xml")

        Dim dt As New DataTable
        Dim newRow As DataRow
        dt.Columns.Add("Serial")
        dt.Columns.Add("Product")
        dt.Columns.Add("Date")

        dt.Columns.Add("Operation")
        dt.Columns.Add("TimeStamp")
        dt.Columns.Add("Status")


For Each n As XmlNode In doc.SelectNodes("Records/Record/Product/Column")
            newRow = dt.NewRow

            newRow(n.Attributes("name").Value) = n.InnerText



            For Each n1 As XmlNode In doc.SelectNodes("Records/Record/Operations/Operation")
                newRow = dt.NewRow
                newRow("Operation") = n1.Attributes("type").Value

                For Each n2 As XmlNode In doc.SelectNodes("Records/Record/Operations/Operation[@type='" & n1.Attributes("type").Value & "']/Column")

                    newRow(n2.Attributes("name").Value) = n2.InnerText

                Next
                dt.Rows.Add(newRow)
            Next
        Next

  DataGridView1.DataSource = dt


Below is my idle output, can anyone help?
Serial      Product   Date      Operation  TimeStamp  Status
N110879987  QWX4T6YU  8/10/2012	SETUP      8/10/2012  Success<code></code>
			        RUN	   8/11/2012  Done
N110879988  QWX4T6YU  8/12/2012	SETUP      8/12/2012  Success
			        RUN	   8/12/2012  Done
Posted

do it like this



VB
Dim ds As New DataSet
ds.ReadXml("path of excel file")
DataGridView1.Columns.Clear()
DataGridView1.DataSource = ds.Tables(0)
 
Share this answer
 
try below code
C#
string myXMLfile = @"C:\Temp\N11.xml";
    DataSet ds = new DataSet();
    // Create new FileStream with which to read the schema.
    System.IO.FileStream fsReadXml = new System.IO.FileStream 
        (myXMLfile, System.IO.FileMode.Open);
    try
    {
        ds.ReadXml(fsReadXml);
        dataGrid1.DataSource = ds.Tables[0];
        //dataGrid1.DataMember = "Cust";
        dataGrid1.DataBind();
    }
    catch (Exception ex)
    {

    }
    finally
    {
    fsReadXml.Close();
    }

please convert in to vb.net
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900