c#将具有重复元素的XML读取到DataSet中

本文关键字:读取 XML DataSet 元素 | 更新日期: 2023-09-27 18:24:28

我正在尝试使用DataSet.ReadXML将XML文件读取到DataSet中。问题是有些节点具有相同名称的重复元素。这些重复元素在导入到数据集中时将被忽略。

例如:

<node1>
    ---
    <element>valueA</element>
    <element>valueB</element>
</node1>
<node2>
    ---
    <element>valueA</element>
    <element>valueC</element>
</node2>

欢迎任何建议或协助。

c#将具有重复元素的XML读取到DataSet中

System.Data.DataSet可能不是使用XML数据的用户友好方式,尤其是当您没有现成的模式时。有多种可选方案,可能最简单的是使用System.Xml.Linq命名空间中的类(在.NET3.5+中可用),例如:

var xDoc = XDocument.Parse(YOUR_XML);
//get contents of all `element` elements in `node1` as list
var result = xDoc.Root.Descendants("node1")
                      .Single()
                      .Elements("element")
                      .Select(el => el.Value)
                      .ToList();