我已经搜索并尝试了几个小时,但我无法让它发挥作用。所以我决定在这里问一个问题。请帮助我。
我有一个像这样的xml
<parent>
<anothertag/>
<body>
<monitor value="3"/>
<mouse value="5"/>
<chair>
<monoblock value="5"/>
</chair>
</body>
</parent>
如果可能,这是我想要的 xml 输出
<parent>
<anothertag/>
<body>
<anotherbody>
<monitor value="3"/>
<mouse value="5"/>
<chair>
<monoblock value="5"/>
</chair>
</anotherbody>
</body>
</parent>
这是我的代码
string xml = "<parent>" +
"<anothertag/>" +
"<body>" +
"<monitor value=\"3\"/>" +
"<mouse value=\"5\"/>" +
"<chair>" +
"<monoblock value=\"5\"/>" +
"</chair>" +
"</body>" +
"</parent>";
XDocument doc = XDocument.Parse(xml);
var p = doc.Descendants("body").Elements();
foreach (var item in doc.Descendants("body").ToList())
{
item.Add(new XElement("anotherbody", p));
}
Console.WriteLine(doc.ToString());
这是输出
<parent>
<anothertag />
<body>
<monitor value="3" />
<mouse value="5" />
<chair>
<monoblock value="5" />
</chair>
<anotherbody>
<monitor value="3" />
<mouse value="5" />
<chair>
<monoblock value="5" />
</chair>
</anotherbody>
</body>
</parent>
输出是冗余的。我该如何删除它?
p.Remove();
删除所有元素。谢谢
最佳答案
试试这个
foreach (var item in doc.Descendants("body").ToList())
{
item.ReplaceAll(new XElement("anotherbody", item.Nodes()));
}
关于c# xml linq 向元素添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41217001/