我开发了一个示例应用程序来创建XML文档,并创建并保存了文档中的XML。应用程序仍在运行,但我删除了该XML文档,现在我正在尝试使用相同的应用程序创建一个新的XML。我有个错误
这个文档已经有了“DocumentElement”节点
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。
发布于 2009-08-19 06:51:11
问题是,即使删除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");
}因此,当您再次访问这个块时,它将执行而不会出现问题。
发布于 2009-08-19 06:38:49
使用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");https://stackoverflow.com/questions/1298116
复制相似问题