日期:2014-05-18  浏览次数:20826 次

比较特殊的添加xml节点怎么处理呢?
现在是这样:
一个别的方法返回一个序列化对象的XML string,类似
<employeeclass>
 <firstname>tom</firstname>
 <lastname>wang</lastname>
</employeeclass>
我要把它添加到现有的xml文件中去。
现有的文件就是这样
<employees>
<employeeclass>。。。</employeeclass>
<employeeclass>。。。</employeeclass>
<employeeclass>。。。</employeeclass>
</employees>
我该怎么添加呢?因为我用XmlElement xmlElement = XmlDocument.CreateElement("temp");
的时候总会添加一个多于的节点把人家的xmlstring 包住。成了
<temp>
<employeeclass>
 <firstname>tom</firstname>
 <lastname>wang</lastname>
</employeeclass>
</temp>
怎么处理好呢?谢谢!


------解决方案--------------------
C# code

 XmlDocument doc = new XmlDocument();
            doc.LoadXml("<employeeclass><firstname> tom </firstname><lastname> wang </lastname></employeeclass>");
            XmlNode node = doc.FirstChild;
            XmlDocument doc2 = new XmlDocument();
            doc2.Load("c:\\a.xml");
            XmlNode root = doc2.SelectSingleNode("employees");
            XmlNode newNode = doc2.ImportNode(node, true);
            root.AppendChild(newNode);
            doc2.Save("c:\\a.xml");

------解决方案--------------------

//楼主参考下,看看是不是这个意思.
C# code


XmlDocument doc = new XmlDocument();
        doc.Load(Server.MapPath("Employee.xml"));
        XmlNode objectNode = doc.SelectSingleNode("employees");
        XmlDocumentFragment docFrag = doc.CreateDocumentFragment();
        docFrag.InnerXml = "<employeeclass><firstname>tom</firstname><lastname> wang </lastname></employeeclass>";

        objectNode.InsertAfter(docFrag, objectNode.LastChild);

        doc.Save(Server.MapPath("Employee.xml"));