C# 将XML读入数据集

C# 将XML读入数据集,c#,dataset,C#,Dataset,我遵循这一点,将下面的xml结构转换为数据集 <?xml version="1.0" encoding="UTF-8"?> <data> <child1> <to>alice@mail.com</to> <from>bob@mail.com</from> <name>ali

我遵循这一点,将下面的xml结构转换为数据集

<?xml version="1.0" encoding="UTF-8"?>
    <data>
        <child1>
            <to>alice@mail.com</to>                 
            <from>bob@mail.com</from>
            <name>alice alicia</name>
        </child1>
        <child2>
            <file>
                <size>123</size>
                <content>lorem ipsum</content>
            </file> 
         </child2>
     </data>

alice@mail.com                 
bob@mail.com
艾丽丝·艾丽西亚
123
乱数假文
它在数据集中变成了3个表:

  • child1表有3列(到、从、名称)
  • 具有1列的child2表(文件)
  • 包含两列(大小、内容)的文件表
最后,我希望只有1个表,其中包含5列(to、from、name、size、content)

我可以使用模式来设计DataSet中的ReadXml将xml解释到所需表中的方式吗?如果是这样的话,这种模式会是什么样子

我想到了另外两种解决方案,但我不太喜欢它们,因为它们需要手动处理,我认为在处理许多XML时,手动处理成本很高:

  • 读取xml后更改数据集,将3个表合并为一个表并删除不需要的列(文件)
  • 在数据集中调用ReadXml方法之前手动编辑xml

  • 您是否考虑过将XML解析为C#,您将节省大量时间,并且可以轻松地从您的侧面处理对象。试试看。你可以使用XSLT将xml转换成平面结构。另外,如果de标记
    child1
    child2
    是相同的,为什么它们有不同的名称?您可以手动循环XML,并为其创建自己的XML到表逻辑。您也可以使用第三方解决方案,正如您在问题的评论中指出的那样。您建议的选项是可能的(而且更简单),但需要多次处理数据。这对于小数据集很好,但在处理大数据集时可能会导致处理缓慢。最后,我使用了@FedericoNavarrete建议的方法。这对我来说非常有效,所以()。谢谢