2009-08-19 13 views
0

J'ai développé un exemple d'application pour créer un document xml, et j'avais créé un document xml et enregistré le xml. l'application est toujours en cours d'exécution mais je supprime ce xml et essaye maintenant de créer un nouveau xml en utilisant le fichier appln.i j'ai un problème de "ce document a déjà un 'document' élément".Créer un élément dans un document 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); 
} 

Je peux facilement ajouter un nœud XML existant waht que je veux faire est si mon xml obtenu application supprimée doit créer un nouveau xml avec les mêmes balises

+0

Pouvez-vous partager le code avec nous? –

Répondre

3

Le problème est que même si vous supprimez le XML, l'élément doc que vous utilisez est le même que précédemment. Ainsi, lorsque vous essayez d'ajouter l'élément racine à l'exception de l'élément doc, il est lancé. Une solution possible est la manière suivante:

par exemple:

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

Alors quand vous arrivez à ce bloc à nouveau il exécutera sans problème.

2

utilisation de la propriété DocumentElement - Il retourne l'élément racine du document 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"); 
Questions connexes