使用LINQ转换XML,并使用c#将其存储为数据视图表

本文关键字:存储 数据 视图 转换 LINQ XML 使用 | 更新日期: 2023-09-27 18:17:19

我有这个XML文件。

<Address>
    <Data2>
        <Person>
          <EMPL_NUM>>100</EMPL_NUM>
          <NAME>Carl</NAME>
          <ID_NUM>1</ID_NUM>
          <IsRequired>0</IsRequired>
        </Person>
        <Person>
          <EMPL_NUM>200</EMPL_NUM>
          <NAME>Mark</NAME>
          <ID_NUM>2</ID_NUM>
          <IsRequired>0</IsRequired>
        </Person>
        <Person>
          <EMPL_NUM>300</EMPL_NUM>
          <NAME>Tanner</NAME>
          <ID_NUM>3</ID_NUM>
          <IsRequired>0</IsRequired>
        </Person>
 </Data2>
</Address>   

我试图将Person中具有ID_NUM = 1的所有数据存储到datagridview

输出到datagrid应该是:

EMPL_NUM  |  Name  |  ID_NUM  |  IsRequired                  
  100     |  Carl  |    1     |      0
下面是我当前的代码:
XDocument doc = XDocument.Parse(path);     
var mySteps = (from s in doc.Descendants("Address")                           
               select new
               {
                   Id = int.Parse(s.Element("EMPL_NUM").Value),
                   Name = s.Element("NAME").Value,
                   MD_ID = s.Elements("ID_NUM").Where(x => x.Element("MD_ID").Value == IdNum),
                   Description = s.Element("IsRequired").Value
               }).ToList();
datagridview.datasource = mysteps.ToList();

我一直得到错误:

Data at the root level is invalid. Line 1, position 1.

我错过了什么?

使用LINQ转换XML,并使用c#将其存储为数据视图表

尝试使用

XDocument doc = XDocument.Load(path);

代替

XDocument doc = XDocument.Parse(path);