使用c#linq创建特定现有节点的父节点

时间:2016-08-09 09:32:57

标签: c# linq

我还有其他问题需要

使用c#linq

创建特定现有节点的父节点

这是输入

<tag>
    <New>some content</New>
    <b> bold </b>
    <New> content two </New>
    <p> p tag </p>
</tag>

这是输出

<tag>
    <newtag><New>some content</New></newtag>
    <b> bold </b>
    <newtag><New> content two </New></newtag>
    <p> p tag </p>
</tag>

这是我的代码

XElement addtag = XElement.Parse(rTxtoutput.Text);
            IEnumerable<XElement> add =
                from el in addtag.Descendants("New").ToList()
                select el;
            foreach (XElement el in add)
            {

            }

1 个答案:

答案 0 :(得分:0)

解决方案:感谢@philippe的想法。

const string xml = @"<tag>
        <New>some content</New>
        <b> bold </b>
        <New> content two </New>
        <p> p tag </p>
    </tag>";

                XElement addtag = XElement.Parse(xml);
                IEnumerable<XElement> add =
                    from el in addtag.Descendants("New").ToList()
                    select el;
                foreach (XElement el in add)
                {
                    el.AddAfterSelf(new XElement("p", el));
                    el.Remove();
                }
                Console.WriteLine(addtag.ToString());