现有一个XELement,如下
<Attach>
  <Att>
    <ClientID>a9fc6479-5fa0-4a26-b872-c2b475c2aae3</ClientID>
    <ServerID>7</ServerID>
  </Att>
</Attach>如何将其全部添加到XmlNode对象的Xml文件中去?比如XmlNode为装在了一下Xml文件
<body CryptRequired="true">
      <userInfo>        
        <UserSection>
        </UserSection>
      </userInfo>
      <screen>
      </screen
      <FingerData>
        <FingerPrintFlag>asdrfa</FingerPrintFlag>
      </FingerData>
</body>需要将上面的XElement对象插入到线面XmlNode对象中的<FingerData>节点下,成为如下形式:
<body CryptRequired="true">
      <userInfo>        
        <UserSection>
        </UserSection>
      </userInfo>
      <screen>
      </screen
      <FingerData>
        <FingerPrintFlag>asdrfa</FingerPrintFlag>
        <Attach>
           <Att>
             <ClientID>a9fc6479-5fa0-4a26-b872-c2b475c2aae3</ClientID>
             <ServerID>7</ServerID>
            </Att>
         </Attach>
      </FingerData>
</body>

解决方案 »

  1.   

    Regex.Replace替换FingerPrintFlag
    public static void Insert(string path, string node, string element, string attribute, string value)
            {
                try
                {
                    XmlDocument doc = new XmlDocument();
                    doc.Load(path);
                    XmlNode xn = doc.SelectSingleNode(node);
                    if (element.Equals(""))
                    {
                        if (!attribute.Equals(""))
                        {
                            XmlElement xe = (XmlElement)xn;
                            xe.SetAttribute(attribute, value);
                        }
                    }
                    else
                    {
                        XmlElement xe = doc.CreateElement(element);
                        if (attribute.Equals(""))
                        {
                            xe.InnerText = value;
                        }
                        else
                        {
                            xe.SetAttribute(attribute, value);
                        }
                        xn.AppendChild(xe);
                    }
                    doc.Save(path);
                }
                catch { }
            }
      

  2.   

    必须是doc.Load(path),现在就是接收到的xml文件,并没有路径,但我改用doc.LoadXml进行操作也是不行。
      

  3.   

        XmlDocument doc = new XmlDocument();
         string xmlData = "<book xmlns:bk='urn:samples'></book>";    doc.Load(new StringReader(xmlData));
    不知道路径也没问题,知道代码就行。 这样也能读去成 XmlDocument  对象