首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果删除原始XML文档,则重新创建相同的XML文档。

如果删除原始XML文档,则重新创建相同的XML文档。
EN

Stack Overflow用户
提问于 2009-08-19 06:31:03
回答 2查看 19.5K关注 0票数 0

我开发了一个示例应用程序来创建XML文档,并创建并保存了文档中的XML。应用程序仍在运行,但我删除了该XML文档,现在我正在尝试使用相同的应用程序创建一个新的XML。我有个错误

这个文档已经有了“DocumentElement”节点

代码语言:javascript
运行
复制
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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-19 06:51:11

问题是,即使删除XML,您所使用的doc元素也与以前相同。因此,当您尝试将根元素添加到doc元素时,会引发异常。可能的解决办法如下:

例:

代码语言:javascript
运行
复制
 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");
 }

因此,当您再次访问这个块时,它将执行而不会出现问题。

票数 3
EN

Stack Overflow用户

发布于 2009-08-19 06:38:49

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

代码语言:javascript
运行
复制
    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");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1298116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档