我开发了一个示例应用程序来创建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
答案 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");