C#XML-将属性复制到子元素

C#XML-将属性复制到子元素,c#,C#,例如,我有一个XML结构,如下所示: <element1> <element 2 name = "Blah" value = "Something"> <element 3 name = "Blah" type = "Something"> <element 3 name = "Woo" type = "Wibble"> <element 4 name = "Hello"> <eleme

例如,我有一个XML结构,如下所示:

<element1>
  <element 2 name = "Blah" value = "Something">
    <element 3 name = "Blah" type = "Something">
    <element 3 name = "Woo" type = "Wibble">
      <element 4 name = "Hello">
      <element 4 name = "Goodbye">
      </element4>
    </element3>
  <element2>
</element1>

仅粗略结构指南。不,我如何在C#中编写一个应用程序,复制元素2中的value属性并将其放置在元素3的每个实例中,但前提是它有一个元素4子元素

对于要求举例说明的评论者:

我希望遍历XML文档,对于包含element4子级的element3的每个实例,我希望复制该element3的element2父级中的“value”属性,并将其添加到该element3的属性列表中。如果这有道理的话:\

好吧,我会:

  • 将XML加载到
    XDocument
  • 使用
    文档子体(“element2”).First()或
    文档根元素(“element2”)查找
  • 查找要复制的属性值,例如,使用
    string value=(string)元素.attribute(“value”)
  • 使用
    doc.Root.elements(“element3”)
  • 为具有
    元素的儿童测试每个
    。元素(“元素4”)!=空
  • 对任何适当的元素调用
    element.SetAttributeValue(“value”,value”)
    • 好吧,我想:

      • 将XML加载到
        XDocument
      • 使用
        文档子体(“element2”).First()或
        文档根元素(“element2”)查找
      • 查找要复制的属性值,例如,使用
        string value=(string)元素。属性(“value”);
      • 使用
        doc.Root.elements(“element3”)
      • 测试每个
        是否有
        元素。元素(“元素4”)!=null
      • 对任何适当的元素调用
        element.SetAttributeValue(“value”,value”)

      请举例说明你的问题好吗