je reçois un NullReferenceException lorsque vous essayez d'ajouter l'élément à son parent à l'élément, comme celui-ciNullReferenceException lorsque annexant attribut à l'élément en XML en utilisant C#
XmlDocument dartDatabase = new XmlDocument();
string path = @"D:\xml\dartDatabase.xml";
...
dartDatabase.Load(path);
XmlNode newGame = dartDatabase["games"].AppendChild(dartDatabase.CreateElement("game"));
XmlNode newGameId = dartDatabase.CreateAttribute("id");
newGameId.Value = gameId.ToString();
newGame.Attributes.SetNamedItem(newGameId);
.. Il y a probablement une erreur dans l'expression XPath, donc j'ai essayé d'ajouter un élément newPlayer s un lastChild, juste pour essayer le code qui suit. Et là aussi j'obtiens NullReferenceException en ajoutant l'attribut newPlayerId à l'élément newElement. Première partie fonctionne très bien, il crée le fichier xml comme celui-ci,
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<games>
<game id="2" name="501" />
</games>
mais la deuxième partie, lorsque je tente d'ajouter l'élément newPlayer à un élément spécifique i par id déterminer attribut.
fichier xml devrait ressembler à ceci
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<games>
<game id="2" name="501">
<player id="1">
</player>
</game>
</games>
'SelectSingleNode ("/ jeux/jeu [@ id = 'gameid']"); '- aucun jeu n'a probablement un gameId égal à" gameId "! 'SelectSingleNode ("/jeux/jeu [@ id = '"+ gameId.ToString() +"'] ")' est plus approprié. –
J'ai essayé comme vous avez écrit, et j'obtiens le même résultat. Et j'ai vérifié existingGame est null, mais newPlayer n'est pas null sa valeur est {Element, player} –