有xml如下形式
<Request>
   <State code="1">
     <a>xxx</a>
     <b>ccc</b>
   </State>
</Request>
现有一字符串格式如<State code="2"><a>111</a><b>222</b></State>
如何用xml操作的方法把这个字符串作为子节点加到xml中去?

解决方案 »

  1.   

    protected void Button3_Click(object sender, EventArgs e)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(Server.MapPath("XMLFile.xml"));//加载xml文件        XmlNode node = doc.SelectSingleNode("Request ");
            XmlElement StateElement = doc.CreateElement("State");
            StateElement.SetAttribute("code", "2");        XmlElement aElement = doc.CreateElement("a");
            aElement.InnerText = "111";
            StateElement.AppendChild(aElement);        XmlElement bElement = doc.CreateElement("b");
            bElement.InnerText = "222";
            StateElement.AppendChild(bElement);        node.AppendChild(StateElement);
            doc.Save(Server.MapPath("XMLFile.xml"));
        }
      

  2.   

    这样是一个节点一个节点生成,然后再加值进去啊
    我是想一次性把这个字符串做为一个大节点加入,而不用去解析这个字符串,而且这个字符串是保证符合原XML节点规范的
      

  3.   

    先将原来的XML转化为字符串,然后再将你的字符串加入到字符串里面去,然后再将字符串转化为XML
      

  4.   

    啊,那就是说xml没有这种将一个字符串作为一个node加入的方法了么
    如果解析字符串的话,挺麻烦的,特别是层次很多的XML......一种方式是把新的字符串包上一个原XML里父级节点的头,然后再生成一个node,然后加入原xml
    这要比把原xml转化字符串方便点
      

  5.   

    可以使用XmlDocumentFragment  来插入片段         string filepath = Server.MapPath("你的xml文件");
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(filepath);
            XmlDocumentFragment xmlfrag = xmldoc.CreateDocumentFragment();
            xmlfrag.InnerXml ="<State code="2" ><a >111</a ><b >222</b ></State >"
            xmldoc.DocumentElement.AppendChild(xmlfrag); //从根元素开始插入
            xmldoc.Save(filepath);
      

  6.   

    如果你是插入到根元素的,那么只需要更改将这个XmlDocumentFragment 使用appendchild你指定的元素就可以了
      

  7.   

    如果你不是插入到根元素的,那么只需要更改将这个XmlDocumentFragment 使用appendchild你指定的元素就可以了