例如,我有一个像这样的嵌套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}
第二个单元格中的{值1}
第三个单元格中的{值2}
单元格4中的{值3值4}
单元格5 {值3}
单元格6 {值4}
有没有办法动态获取每个值而不获取组中的值,我有大约100个xml文件要转换,我不认为我可以专门标记
有什么想法吗?
答案 0 :(得分:0)
编辑:过滤不具有子元素
的元素的示例XElement root = XElement.Parse(@"<Root>
<NodeA>value</NodeA>
<NodeB>value</NodeB>
<NodeC>
<NodeD>value</NodeD>
</NodeC>
</Root>
");
foreach(var el in root.Descendants())
{
if(!el.HasElements)
Console.WriteLine(el.ToString());
}