【发布时间】:2017-10-25 04:20:41
【问题描述】:
例如,如果我有这样的嵌套 xml
<Root>
<NodeA>
<NodeA1>
<NodeA11>
<SameNameNode>
<SameNameNodeChild1>Value 1</SameNameNodeChild1>
<SameNameNodeChild2>Value 2</SameNameNodeChild2>
</SameNameNode>
</NodeA11>
</NodeA1>
</NodeA>
<NodeB>
<SameNameNode>
<SameNameNodeChild1>Value 3</SameNameNodeChild1>
<SameNameNodeChild2>Value 4</SameNameNodeChild2>
</SameNameNode>
</NodeB>
<NodeC>
<NodeC1>
<SameNameNode>
<SameNameNodeChild1>Value 5</SameNameNodeChild1>
<SameNameNodeChild2>Value 6</SameNameNodeChild2>
</SameNameNode>
</NodeC1>
</NodeC>
如何检索所有值 值 1 一直到值 6 并将它们存储在 Excel 表中?
目前我的代码是
foreach (XElement DirectChild in xml.Descendants())
{
foreach (XElement child in DirectChild.Descendants())
{
foreach (XElement GrandChild in DirectChild.Elements())
{
dataList.Add(GrandChild.Value);
}
}
并将数据放入 Excel 工作表中。
虽然我得到的数据格式是这样的
在 1 个单元格中 {值 1 值 2}
在第二个单元格 {value 1}
在第 3 个单元格 {value 2}
在单元格 4 {值 3 值 4}
单元格 5 {值 3}
单元格 6 {值 4}
有什么方法可以单独动态获取每个值而不需要分组获取值,我有大约 100 个 xml 文件要转换,我认为我不能专门标记它
有什么想法吗?
【问题讨论】:
-
预期结果是单元格 1:值 1;单元格 2:值 2;单元格 3:值 3;等等等等
-
您能否更具体地说明为什么单元格需要数据?样本输入并不总是具有相同数量的元素。您还需要元素名称吗?我看起来您正在尝试对 100 个文件中的数据进行分组,但不确定分组的要求是什么。
-
对不起,我为每个元素 grp 放置的输入是错误的,在这种情况下,数据将在 1 个单元格内,值 1 和 2 将在一个单元格中 grp 4 次,然后将它们分别分成 1 个单元格。我不知道分组的要求唯一的任务是每个值都在自己的单元格中
-
你必须计划这个任务。开始查看多个文件以确定如何将数据放入工作表中,以免数据重叠。上大学时,老师布置了一项任务,从文件中读取学生数据。第一个文件没有错误。 .第二个文件有错误。当我完成时,我有超过 500 张打孔卡让程序在批处理系统上运行,需要 4 个小时才能打印出来。圆形篮子里有1000多张打孔卡。现在只需几分钟,无需打卡。但是您不想对程序进行更改。先做设计。
标签: c# xml excel linq-to-xml