0

如果假设我有以下格式的 XML 文件:

<Employee>
  <EmpInfo>
     <Name> 1 </Name>
     <Age> 23 </Age>
     <Salary> 23234 </Salary>
  </EmpInfo>
  <EmpInfo>
     <Name> 2 </Name>
     <Age> 234 </Age>
     <Salary> 54 </Salary>
  </EmpInfo> *and so on in the similar fashion*
</Employee>

我想显示输出。

编辑:

我尝试了这样的基本方法:

doc = new XmlDocument();
doc.Load(@"D:\new.xml");
root = doc.DocumentElement;
txtName1.Text = root.GetElementsByTagName("name1")[0].InnerText;
textBox2.Text = root.GetElementsByTagName("empid1")[0].InnerText;
textBox3.Text = root.GetElementsByTagName("deptt1")[0].InnerText;
textBox4.Text = root.GetElementsByTagName("name2")[1].InnerText;
textBox5.Text = root.GetElementsByTagName("empid2")[1].InnerText;
textBox6.Text = root.GetElementsByTagName("deptt2")[1].InnerText;

除了使用 GetElementsByTagName 还有其他方法吗?

4

5 回答 5

2

这段代码将以表格形式为您提供行:

XDocument doc = XDocument.Load(@"[xml file]");

var rows = doc.Descendants("EmpInfo").Select(e => new()
{
    Name = e.Element("Name").Value,
    Age = e.Element("Age").Value,
    Salary = e.Element("Salary").Value
});

或者

class Entity
{
    public string Name { get; set; }
    public int Age { get; set; }
    public decimal Salary { get; set; }
}

var rows = doc.Descendants("EmpInfo").Select(e => new Entity()
{
    Name = e.Element("Name").Value,
    Age = Convert.ToInt32(e.Element("Age").Value),
    Salary = Convert.ToDecimal(e.Element("Salary").Value)
});
于 2012-10-04T07:15:46.143 回答
1

您可以读取数据DataSet并将其分配DataSet给 GridView ..

检查下面的代码

   string myXMLfile = Server.MapPath("XMLFile.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);
          gridView1.DataSource = ds;
          gridView1.DataBind();
      }
      catch (Exception ex)
      {
           Response.Write(ex.Message);
      }
      finally
      {
          fsReadXml.Close();
      }
于 2012-10-04T07:18:04.823 回答
0

我会将 XML 数据解析为一个数组,然后遍历每个 EmpInfo,使用类似 printf 的函数打印员工姓名、年龄和薪水。也许也打印标题。

于 2012-10-04T07:15:59.790 回答
0
DataSet ds = new DataSet();
    ds.ReadXml("xml file path");

然后您可以将数据集与数据表和后续操作一起使用。例如,使用中继器或数据网格或类似方式

于 2012-10-04T07:18:11.610 回答
0

您的问题可能有一个广泛的答案,所以最好先尝试以下尝试使用此链接

阅读 Xml

尝试使用此链接创建表

于 2012-10-04T07:19:21.633 回答