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

发布于 2024-08-02 10:31:40 字数 623 浏览 3 评论 0原文

我开发了一个示例应用程序来创建 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。

I developed a sample application to create an XML document, and I created and saved the XML documented. The application is still running but I delete that XML document and I am now trying to create a new XML using the same application. I got an error of

this document already has 'DocumentElement' node

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);
}

I can easily append the node in existing XML document but what I want to do is: if my XML got deleted, application has to create a new XML with same tags.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

世界如花海般美丽 2024-08-09 10:31:40

问题是,即使删除 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");
 }

因此,当您再次到达此块时,它将毫无问题地执行。

The issue is even if you delete the XML, the doc element you are using is the same one as before. So when you try to add the root element to the doc element exception is thrown. A possible solution is as as follows:

eg:

 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");
 }

So when you get to this block again it will execute without issues.

无法回应 2024-08-09 10:31:40

使用 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");

Use DocumentElement property - It return the root element of Xml document.

    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");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文