2017-09-27 1 views
1

XML을 사용하여 텍스트 기반 어드벤처 게임의 기본 파일을 저장합니다. XML 문자열은 인벤토리 노드가 작성되지 않는 것을 제외하고는 저장을 수행합니다. 같은 과정으로 퀘스트를 저장하고 있습니다. 퀘스트 및 퀘스트 완료가 저장됩니다.코드가 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

당신은'AppendChild'에 통화 반전 안 -'inventoryItems.AppendChild'를? –

+0

그 호출은 inventoryItems를 플레이어 노드의 자식 노드로 만들고 있습니다. – LukeDev

+0

그리고'inventoryItem'의'inventoryItems' 자식을 만드는 것보다 ... –

답변

1

inventoryItemforeach 문장의 끝에 inventoryItems의 자식이어야합니다.

inventoryItem.AppendChild(inventoryItems); 

은 다음과 같아야합니다

inventoryItems.AppendChild(inventoryItem); 
관련 문제