数据集.ReadXml无法获取所有数据

本文关键字:数据 获取 ReadXml 数据集 | 更新日期: 2023-09-27 18:09:05

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

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"answers"count"值分别为0和70。好像只击中了第一个节点?

所以我不确定我做错了这些方法。xml文件格式不正确吗?我是否需要让它更深入节点?我能不能指定要击中哪个节点?

任何帮助将是感激的,谢谢你

数据集.ReadXml无法获取所有数据

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