我有一个相对简单的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文件格式不正确吗?我是否需要让它更深入到节点?有什么方法可以指定要命中的节点吗?
任何帮助将不胜感激, 谢谢
答案 0 :(得分:0)
我意识到我忘记了DataSet拥有多个表,并且我只看到第一个包含根的表。虽然这确实帮助我理解解析器如何导航xml树。只有叶元素(没有子元素)被添加到表中,所有其他元素在数据集中获得自己的表。