现在想实现的功能就是
①、使用C#动态生成不是同一个盘下的XML文档(比如说项目在D盘,生成的XML文档在E盘)
②、XML文档的节点的动态的,比如说
<Employees>
<Node genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
</Node>
</Employees>
已经生成了上述的节点,想重新点击按钮在改文档中另外生成另一个节点,请问该怎么实现呢?在线等,谢谢各位大侠。 

解决方案 »

  1.   

    using System.Xml;一、检查指定XML文件是否存在
    System.IO.File.Exists(文件路径及名称);二、利用C#编程创建 XML文件
    我在网上找到了这样的两段代码:
    代码一:
    XmlDocument xmldoc = new XmlDocument();
    XmlNode xmlnode;
    XmlElement xmlelem;
    XmlElement xmlelem2;
    XmlText xmltext;//加入XML的声明段落
    xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
    xmlnode.InnerText+=" encoding=\"GB2312\"";
    xmldoc.AppendChild(xmlnode);//加入一个根元素
    xmlelem = xmldoc.CreateElement("", "ROOT", "");
    xmltext = xmldoc.CreateTextNode("Root Text");
    xmlelem.AppendChild(xmltext);
    xmldoc.AppendChild(xmlelem);//加入另外一个元素
    xmlelem2 = xmldoc.CreateElement("SampleElement");
    xmlelem2 = xmldoc.CreateElement("","SampleElement","");
    xmltext = xmldoc.CreateTextNode("The text of the sample element");
    xmlelem2.AppendChild(xmltext);
    xmldoc.ChildNodes.Item(1).AppendChild(xmlelem2);//保存创建好的XML文档
    try
    {
    xmldoc.Save("data.xml");
    }
    catch (Exception f)
    {
    //显示错误信息
    MessageBox.Show(f.Message);
    }
    //Console.ReadLine();
    这段代码在win2003ser+vs2005环境下测试成功,但是XML文件格式很乱,我不知道怎样调整格式,知道的朋友请赐教。代码二:
    string FileName =Application.StartupPath+"\\phone.xml";
    XmlTextWriter objXmlTextWriter = new XmlTextWriter(FileName,Encoding.Default);objXmlTextWriter.Formatting = Formatting.Indented;
    objXmlTextWriter.Indentation = 6;objXmlTextWriter.WriteStartDocument();objXmlTextWriter.WriteStartElement("", "PhoneBook", "");objXmlTextWriter.WriteStartElement("", "Name", "");
    objXmlTextWriter.WriteString("加菲尔德");
    objXmlTextWriter.WriteEndElement();objXmlTextWriter.WriteStartElement("", "Number", "");
    objXmlTextWriter.WriteString("5555555");
    objXmlTextWriter.WriteEndElement();objXmlTextWriter.WriteStartElement("", "City", "");
    objXmlTextWriter.WriteString("纽约");
    objXmlTextWriter.WriteEndElement();objXmlTextWriter.WriteStartElement("", "DateOfBirth", "");
    objXmlTextWriter.WriteString("26/10/1978");
    objXmlTextWriter.WriteEndElement();objXmlTextWriter.WriteEndElement();
    objXmlTextWriter.WriteEndDocument();objXmlTextWriter.Flush();objXmlTextWriter.Close(); 
    这段代码在win2003ser+vs2005环境下测试通过,出来的效果很好,也比较容易理解,我一般就是用这段代码创建XML文件。三、读取、修改XML文件的某个节点的值
    string path = "phone.xml"; 
    XmlDocument doc = new XmlDocument();
    doc.Load(path);
    //读所有节点表
    XmlNamespaceManager xnm = new XmlNamespaceManager(doc.NameTable);
    //读取节点值
    XmlNode node = doc.SelectSingleNode("/PhoneBook/Name", xnm); //node.InnerText 就是读取出来的值//修改节点值
    node.InnerText="要修改的内容";//保存修改后的内容
    doc.Save(path);
      

  2.   

    我也用的是代码2,我的问题是,用代码2创建了XML的文档已经节点了,然后怎么重新调用该方法生成另外一个节点而不把上次生成的节点给替换掉。