我有一个相对简单的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"one_answers"count"值分别为0和70。好像只击中了第一个节点?
所以我不确定我做错了这些方法。xml文件格式不正确吗?我是否需要让它更深入节点?我能不能指定要击中哪个节点?
任何帮助将是感激的,谢谢你
我意识到我已经忘记了dataset包含多个表,并且我只查看包含根的第一个表。尽管这确实帮助我理解了解析器是如何导航xml树的。只有叶子元素(没有子元素)被添加到表中,所有其他元素在数据集中获得自己的表。