C# 如何将xmlnodeList复制到xmlNode和xmlelement中

C# 如何将xmlnodeList复制到xmlNode和xmlelement中,c#,asp.net,xml,C#,Asp.net,Xml,帮助我写出代码: 1.我有一个xml文件,我想根据节点类型读取并过滤xmlnodeList中的节点(完成)。 2.现在,我必须在根节点之前创建一个节点(比如Board),在Board节点下创建xmlElement,比如Board0,Board1。。具有某些属性(完成)。 3.现在在Board0中,我想复制xmlnodeList(必须编写代码) 假设我的xml文件如下所示: Switchboard Version="1.4"> <Project Port="7353" WDRemo

帮助我写出代码: 1.我有一个xml文件,我想根据节点类型读取并过滤xmlnodeList中的节点(完成)。 2.现在,我必须在根节点之前创建一个节点(比如Board),在Board节点下创建xmlElement,比如Board0,Board1。。具有某些属性(完成)。 3.现在在Board0中,我想复制xmlnodeList(必须编写代码)

假设我的xml文件如下所示:

Switchboard Version="1.4">
  <Project Port="7353" WDRemotePort="11160" WatchDogSourceAddress="256" IOProtocolVersion="V3" />
  <Controls CountControls="220">
    <IOControl Type="AnalogInput"  </IOControl>
    <IOControl Type="DigitalInput" </IOControl>
    <IOControl Type="DigitalInput" </IOControl>
    <IOControl Type="DigitalInput" </IOControl>
  </Controls>
</Switchboard>
<Switchboard Version="1.4">
  <Project Port="7353" WDRemotePort="11160" WatchDogSourceAddress="256" IOProtocolVersion="V3" />
  <Controls CountControls="4">
    <IOControl Type="AnalogInput"  </IOControl>
    <IOControl Type="DigitalInput" </IOControl>
    <IOControl Type="DigitalInput" </IOControl>
    <IOControl Type="DigitalInput" </IOControl>
  </Controls>
  <Boards CountBoards="3">
  <Board0 Name="Alm_HP_RE" BoardWidth="1800" BoardHeigth="1800" Image="" ImageLayout="None">
    <IOControl Type="DigitalInput" </IOControl>
    <IOControl Type="DigitalInput" </IOControl>
    <IOControl Type="DigitalInput" </IOControl>
  </Board0>
  <Board1 Name="Alm_HP_RE" BoardWidth="1800" BoardHeigth="1800" Image="" ImageLayout="None">
  <IOControl Type="AnalogInput"  </IOControl>
  </Board1>
  <Board2 Name="Alm_HP_RE" BoardWidth="1800" BoardHeigth="1800" Image="" ImageLayout="None">
  </Board2>
  </Boards>
</Switchboard>
交换机版本=“1.4”>
这只是第三个问题的答案[“现在在Board0中,我想复制我的xmlnodeList”]

如何将过滤后的XMlNodeList复制到Board0中

1.使用XPATH选择所需的节点

var nodeList = hardwareDoc.SelectNodes("//IOControl[@Type='DigitalInput']");
2.使用foreach循环将所选节点列表附加到board0 XmlElement

foreach (XmlNode node in nodeList)
{
   elem.AppendChild(node);
}

这只是第三个问题的答案[“现在在Board0中,我想复制我的xmlnodeList”]

如何将过滤后的XMlNodeList复制到Board0中

1.使用XPATH选择所需的节点

var nodeList = hardwareDoc.SelectNodes("//IOControl[@Type='DigitalInput']");
2.使用foreach循环将所选节点列表附加到board0 XmlElement

foreach (XmlNode node in nodeList)
{
   elem.AppendChild(node);
}

您的问题是什么?无法将复制列表的逻辑放入XmlElementforeach(XMLNodem in _AnalogInputList){elem.AppendChild(m);}获取异常:要插入的节点来自不同的文档上下文。但它们来自同一份文件。请提出建议。您有什么问题吗?无法将复制列表的逻辑放入XmlElementforeach(XmlNode m in_AnalogInputList){elem.AppendChild(m);}获取异常:要插入的节点来自不同的文档上下文。但它们来自同一份文件。请建议。