将XML读入DataTable。需要匹配Schema

时间:2013-07-01 17:27:16

标签: c# asp.net xml

我正在尝试将XML文件读入DataTable,并且我很难匹配架构并正确转换它。这就是XML的样子......

<?xml version="1.0" encoding="utf-8"?>
<School>
  <Teacher>
    <Name>Teacher1</Name>
    <Student>
      <Student-Name>Student1</Student-Name>
      <Gender>M</Gender>
      <Address>Address1</Address>
    </Student>
    <Student>
      <Student-Name>Student2</Student-Name>
      <Gender>F</Gender>
      <Address>Address2</Address>
    </Student>
  </Teacher>
  <Teacher>
    <Name>Teacher2</Name>
    <Student>
      <Student-Name>Student3</Student-Name>
      <Gender>F</Gender>
      <Address>Address3</Address>
    </Student>
  </Teacher>
</School>

我需要将它添加到DataTable中,以便表格看起来像这样

姓名学生姓名性别地址
-------------------------------------------------- -
老师1学生1 M地址1 老师1学生2地址2 老师2学生3 F地址3

DataTable.ReadXML() - &gt;不允许我读这个XML文件。该错误表明DataTable不支持架构推断 DataSet.ReadXML() - &gt;没有拿起架构并将其分成两个表,第一个是教师表,第二个是学生表,即使它被设置为推断架构。

另一个问题是我使用几种类型的XML文件。所有这些都有不同数量的节点嵌套在学生中,我需要使这个通用,以便它可以读取XML而不管节点的数量。

我想知道是否需要设置一个XmlReader来读取它,或者我是否需要使用DataSet.ReadXML()/ DataTable.ReadXML()上的任何设置。谢谢。

1 个答案:

答案 0 :(得分:0)

如果您熟悉Xsd.exe(可视工作室中的工具),则可以从XML数据生成类,这样您就可以批量将数据直接从XML加载到生成的类中。

相关问题