2017-09-27 1 views
1

Ich verwende XML, um eine Basisdatei für ein textbasiertes Abenteuerspiel zu speichern. Die XML-Zeichenfolge wird gespeichert, mit Ausnahme der Inventarknoten, die nicht erstellt werden. Ich verwende den gleichen Prozess, um die Quests zu speichern. Die Quests und der Abschluss der Quest werden gespeichert.Code erstellt keinen XML-Knoten und überspringt ihn

//Create the "InventoryItems" child node to hold each InventoryItem node 
XmlNode inventoryItems = playerData.CreateElement("InventoryItems"); 
player.AppendChild(inventoryItems); 

//Create and "inventoryItem" node for each item in player's inventory 
foreach (InventoryItem item in this.Inventory) 
{ 
    XmlNode inventoryItem = playerData.CreateElement("InventoryItem"); 

    XmlAttribute idAttribute = playerData.CreateAttribute("ID"); 
    idAttribute.Value = item.Details.ID.ToString(); 
    inventoryItem.Attributes.Append(idAttribute); 

    XmlAttribute quantityAttribute = playerData.CreateAttribute("Quantity"); 
    quantityAttribute.Value = item.Quantity.ToString(); 
    inventoryItem.Attributes.Append(quantityAttribute); 

    inventoryItem.AppendChild(inventoryItems); 
} 

Dies ist der Code zum Erstellen und Speichern in den Inventarknoten und Questknoten. Ich habe in der foreach-Anweisung Haltepunkte gesetzt. Der Code gelangt in die Anweisung, aber nicht weiter als die erste Zeile in diesem Block; XmlNode inventoryItem = playerData.CreateElement("InventoryItem"); Ich bin auf dieses Problem festgefahren, jede Hilfe würde geschätzt werden.

+1

sollten Sie die Anrufe auf 'AppendChild' nicht umkehren -' inventoryItems.AppendChild'? –

+0

Durch diesen Aufruf wird inventoryItems ein untergeordneter Knoten des Player-Knotens. – LukeDev

+0

Und dann machen Sie 'inventoryItems' child von' inventoryItem' ... –

Antwort

1

inventoryItem sollte ein Kind von inventoryItems am Ende der foreach Anweisung werden.

inventoryItem.AppendChild(inventoryItems); 

Sollte sein:

inventoryItems.AppendChild(inventoryItem); 
Verwandte Themen