在xml文档中创建元素

时间:2009-08-19 06:31:03

标签: c#

我开发了一个示例应用程序来创建xml文档,我创建了xml文档并保存了xml。该应用程序仍在运行,但我删除了该xml,现在尝试使用appln.i创建新的xml得到了一个问题“这个文件已经有了文件节点”。

if (File.Exists(AppPath) == false)
{
    root = doc.CreateElement("LicenseDetails");

    rootnode = doc.CreateElement("License");
    Login = doc.CreateElement("Login_Name");
    Login.InnerText = "KSC";
    rootnode.AppendChild(Login);
    root.AppendChild(rootnode);
    doc.AppendChild(root);
    doc.Save(AppPath);
 }

我可以轻松地在现有的xml中添加一个节点,我想要做的是如果我的xml被删除应用程序必须创建一个具有相同标签的新xml

2 个答案:

答案 0 :(得分:3)

即使您删除XML,问题仍然存在,您使用的doc元素与以前相同。因此,当您尝试将根元素添加到doc元素时,会抛出异常。可能的解决方案如下:

例如:

 XmlDocument doc;
 XmlElement root;
 XmlElement rootnode;
 XmlElement Login;

 if (File.Exists(@"C:\Test.xml") == false)
 {
     doc = new XmlDocument();
     root = doc.CreateElement("LicenseDetails");

     rootnode = doc.CreateElement("License");
     Login = doc.CreateElement("Login_Name");
     Login.InnerText = "KSC";
     rootnode.AppendChild(Login);
     root.AppendChild(rootnode);
     doc.AppendChild(root);

     doc.Save(@"C:\Test.xml");
 }

因此,当你再次进入这个区块时,它会毫无问题地执行。

答案 1 :(得分:2)

使用DocumentElement属性 - 它返回Xml文档的根元素。

    XmlDocument dom=new XmlDocument();
    dom.Load("file.xml");
    XmlElement ele1=dom.createElement("A");
    XmlElement ele2=dom.createElement("B");
    ele1.AppendChild(ele2);
    dom.DocumentElement.AppendChild(ele1);
    dom.Save("file.xml");