具有相同元素的XML文件

时间:2019-06-25 07:30:25

标签: c# xml linq

在阅读现有XML文档方面,我有一个小问题(对我来说这是个大问题)。我有一个文件,其中包含许多始终相同的元素。我需要创建一个列表,清楚地表明哪个孩子属于哪个父母。

<?xml version="1.0" encoding="utf-16"?>
<componentTree name="Location">
  <componentRef ref="47350">
    <componentRef ref="47379">
      <componentRef ref="47425">
        <componentRef ref="47471" />
        <componentRef ref="47494" />
        <componentRef ref="47517">
          <componentRef ref="47632" />
          <componentRef ref="47655" />
          <componentRef ref="47678" />
        </componentRef>
      </componentRef>
    </componentRef>
    <componentRef ref="47402">
      <componentRef ref="47448">
        <componentRef ref="47540">
          <componentRef ref="47563">
            <componentRef ref="47586" />
            <componentRef ref="47609" />
          </componentRef>
        </componentRef>
      </componentRef>
    </componentRef>
  </componentRef>
</componentTree>

以47517为例 成分47517 父母:47425 有孩子:是

有人给我小费吗?

非常感谢...

1 个答案:

答案 0 :(得分:0)

您可以在Linq到SQl中使用类似的东西

 XElement doc = XElement.Parse(xml);
            var result = (from item in doc.Descendants("componentRef")
                         select new {Ref = (string)item.Attribute("ref"),  Parent = (string)item.Parent.Attribute("ref"), HasChild = item.FirstNode != null }).ToList();