2009-08-28 5 views
1

ce qui ne va pas avec ce coderéférence d'objet non définie à une instance d'un objet avec XDocument

XDocument xDocument = new XDocument(); 

for (int i = 0; i < 5; i++) 

{ 

xDocument.Element("PlayerCodes").Add(

new XElement("PlayerCode", i.ToString()) 

); 

} 

xDocument.Save(@"c:\test.xml"); 

Je reçois une erreur « référence d'objet non définie à une instance d'un objet. »

Fondamentalement, je veux créer le fichier XML. Il n'est pas l'existence

S'il vous plaît aider

Répondre

6

Il n'y a rien dans le document, si XDocument.Element (« PlayerCodes ») vient comme nulle.

Chargez d'abord le document.

Ou faire ce

XDocument xDocument = new XDocument(); 

for (int i = 0; i < 5; i++)   
{ 
    if(XDocument.Element("PlayerCodes") == null) 
    { 
    XDocument.Add(new XElement("PlayerCodes")); 
    } 

    xDocument.Element("PlayerCodes").Add(new XElement("PlayerCode", i.ToString())); 

} 

xDocument.Save(@"c:\test.xml"); 
+0

Fondamentalement, je veux créer le fichier xml. Il n'existe pas –

+0

Merci beaucoup. Ça m'a aidé –

0

Vous devez ajouter le "PlayerCodes" elemnt vous XDocument d'abord.

2

Une façon de créer plus concis le même document ressemble à ceci:

var doc = new XDocument(
    new XElement("PlayerCodes", 
     Enumerable.Range(0, 5).Select(i => new XElement("PlayerCode", i)) 
    ) 
); 

doc.Save(@"c:\test.xml"); 
Questions connexes