具有XmlDocument的数据集的多个级别的XML
本文关键字:XML XmlDocument 数据集 具有 | 更新日期: 2023-09-27 18:22:28
我有一个xml文件,其中包含节点子级的几个级别:
-product
--name
--price
--made
-----product
--------name
--distributor
-----name
------address
/product
我需要按顺序读取它,但使用XmlReader是不可能的,所以我必须使用XmlDocument读取每个节点并复制到DataSet(或类似的数据集)中。如何在C#中逐节点读取并复制到数据集???请帮忙吗?
使用StringReader
将xml字符串转换为数据集
string xmlData = "<product><name></name><price></price><made></made></product>";
StringReader reader = new StringReader(xmlData);
DataSet ds = new DataSet();
ds.ReadXml(reader);
直接从XML文件将XML数据写入数据集:
string myfile = @"C:'myXml.xml";
DataSet ds = new DataSet();
ds.ReadXml(myfile);
我认为您可以在XMl文档上使用Xpath逐节点读取。
使用XDocument
和LINQ-to-XML
:是可能的
XDocument doc = XDocument.Load("test.xml");
// Create two DataTable instances.
DataTable table1 = new DataTable("patients");
table1.Columns.Add("name");
foreach(var name in doc.Root.DescendantNodes().OfType<XElement>()
.Select(x => x.Name).Distinct())
{
table1.Rows.Add(name);
Console.WriteLine(name);
}