0

我有一个相对简单的 xml 文件,我想用它来填充 DataSet。我正在尝试以下代码

using (DataSet ds = new DataSet()) 
{
    ds.ReadXml(Server.MapPath("xmlFileName.xml"));
}

但是我的数据集最终只有一行包含文件的第一个节点。

我尝试过其他方法,例如

XmlReader xmlFile = XmlReader.Create("xmlFileName.xml", new XmlReaderSettings());
DataSet ds = new DataSet();
ds.ReadXml(xmlFile);

FileStream fsReadXml = new FileStream("xmlFileName.xml", FileMode.Open);
XmlTextReader xmlReader = new System.Xml.XmlTextReader(fsReadXml);
newDataSet.ReadXml(xmlReader, XmlReadMode.ReadSchema);

两者都会导致空数据集。

我不能发布整个xml文件,但它的格式本质上是

<service_orders count="70">
   <service_order order_number="1111" id="111111">
     <customer>
        <customer_id>55555</customer_id>
        <first_name>John</first_name>
        <last_name>Doe</last_name>
        <email>JohnDoe@gmail.com</email>
        <phone1>55555555</phone1>

我提到的第一种方法只从这个“service_order_id”和“count”生成两列,值分别为 0 和 70。似乎它只击中第一个节点?

所以我不确定我用这些方法做错了什么。xml文件格式不正确?我是否需要以某种方式使其深入节点?有什么办法可以指定要命中的节点吗?

任何帮助将不胜感激,谢谢

4

1 回答 1

0

我意识到我忘记了 DataSet 包含多个表,而我只查看了第一个包含根的表。虽然这确实帮助我理解了解析器如何导航 xml 树。只有叶元素(没有子元素)被添加到表中,所有其他元素在数据集中获得它们自己的表。

于 2014-06-18T17:43:37.690 回答