我使用XML保存基于文本的冒险游戏的基本文件。除了没有创建Inventory节点之外,XML字符串确实保存。我使用相同的程序来保存任务;任务的任务和完成保存。
//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);
}
这是创建并保存到库存节点和任务节点的代码。我在foreach语句中设置了断点。代码进入语句但不超过该块中的第一行; XmlNode inventoryItem = playerData.CreateElement("InventoryItem");
我一直坚持这个问题,任何帮助都会受到赞赏。
答案 0 :(得分:1)
inventoryItem
应该在inventoryItems
声明的末尾成为foreach
的孩子。
inventoryItem.AppendChild(inventoryItems);
应该是:
inventoryItems.AppendChild(inventoryItem);