替换元素标签保留其 children
Replace element tag keep its children
假设我有这个简单的 xml:
<root>
<dad>
<kid> wee </kid>
</dad>
</root>
我的目标是用 <mom>
替换 <dad>
但保留孩子的信息。
我试过了
xml.XPathSelectElements("dad")
然后循环
dad.ReplaceWith(new XElement("mom", dad.descendants());
但它不起作用:(
关于如何做到这一点有什么想法吗?
您似乎想将元素 'dad' 重命名为 'mom':
xml.Root.Elements("dad").ToList().ForEach(d => d.Name = "mom");
如果 'mom' 是一个具有自己的元素和属性的现有元素,我将替换 'dad'-元素并将 'kid'-元素添加到 'mom' 元素:
xml.Root.Elements("dad").ToList().ForEach(d =>
{
XElement mom = new XElement("mom"); //use your mom here
mom.Add(d.Descendants());
d.ReplaceWith(mom);
});
假设我有这个简单的 xml:
<root>
<dad>
<kid> wee </kid>
</dad>
</root>
我的目标是用 <mom>
替换 <dad>
但保留孩子的信息。
我试过了
xml.XPathSelectElements("dad")
然后循环
dad.ReplaceWith(new XElement("mom", dad.descendants());
但它不起作用:(
关于如何做到这一点有什么想法吗?
您似乎想将元素 'dad' 重命名为 'mom':
xml.Root.Elements("dad").ToList().ForEach(d => d.Name = "mom");
如果 'mom' 是一个具有自己的元素和属性的现有元素,我将替换 'dad'-元素并将 'kid'-元素添加到 'mom' 元素:
xml.Root.Elements("dad").ToList().ForEach(d =>
{
XElement mom = new XElement("mom"); //use your mom here
mom.Add(d.Descendants());
d.ReplaceWith(mom);
});