C#XML-将属性复制到子元素
例如,我有一个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
<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”)
- 好吧,我想: