复制xml部分

时间:2014-04-08 11:51:27

标签: xml linq linq-to-xml

如何使用其他名称复制xml部分? 例如,我有:

  <R id="r4" Name="r 4">
    <P>
      <Pr id="p3e3" />
      <Pr id="p3e4" />
    </P>
  </R>

我想复制它,但使用不同的名称和ID,例如:

  <R id="copy4" Name="copy 4">
    <P>
      <Pr id="p3e3" />
      <Pr id="p3e4" />
    </P>
  </R> 

我使用以下方式获取现有部分:

    IEnumerable<XElement> r = null;

    r =
        from el in myxml.Root.Elements()
        where el.Attribute("id").Value == myvalue
        select el;

然后我将其复制:

    myxml.Descendants("S").FirstOrDefault().Add(
        new XElement("R", new XAttribute("id", GetRandomId()), new XAttribute("Name", "Copyof" + myvalue), 
        ??????? ->how do I copy the content?

1 个答案:

答案 0 :(得分:0)

我想你想要

myxml.Descendants("S").FirstOrDefault().Add(
    new XElement("R", new XAttribute("id", GetRandomId()), new XAttribute("Name", "Copyof" + myvalue), 
    r.First().Nodes())

如果要复制r

中第一项的内容
myxml.Descendants("S").FirstOrDefault().Add(
    new XElement("R", new XAttribute("id", GetRandomId()), new XAttribute("Name", "Copyof" + myvalue), 
    r.Nodes())

如果您要复制r中所有项目的内容。