代码不会创建XML节点并跳过它

时间:2017-09-27 01:10:26

标签: c# xml

我使用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");我一直坚持这个问题,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

inventoryItem应该在inventoryItems声明的末尾成为foreach的孩子。

inventoryItem.AppendChild(inventoryItems);

应该是:

inventoryItems.AppendChild(inventoryItem);