2009-08-19 8 views
0

xml文書を作成するサンプルアプリケーションを開発しました。xml文書を作成してxmlを保存しました。アプリケーションはまだ実行されていますが、XMLを削除して、appln.iを使用して新しいxmlを作成しようとしましたが、「この文書はすでにhas'documentelement 'ノード」の問題があります。これは、ルート要素を返す - 私の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"); 
} 

だから、再び、それは問題なく実行されます。

2

使用のdocumentElementプロパティを持つ新しいXMLを作成する必要が削除された場合、私は簡単に私がやりたいWAHT既存の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ドキュメントの

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"); 
関連する問題