2014-02-16 33 views
1

我正面臨新語法的問題。 當解析以下YAML文件:使用以下代碼使用帶有新API的編號索引無效轉換

S1: 
    data_type: spr 
    guid: 1 
S2: 
    data_type: spr 
    guid: 2 

#include "yaml.h" 
int main() { 
    YAML::Node testNode = YAML::LoadFile("data/Sprites.yaml"); 

    std::cout<<"type "<<testNode["S1"]["data_type"].as<std::string>()<<std::endl; 
    std::cout<<"type "<<testNode[1]["data_type"].as<std::string>()<<std::endl; 
    return 0; 
} 

第一行工作並輸出「型SPR」,而第二行不,投擲YAML: :TypedBadConversion < std :: string>。

不應該他們都有相同的輸出?或者,編號索引是否僅適用於序列而不適用於地圖?我究竟做錯了什麼?

回答

0

在YAML中,地圖沒有排序,因此要求提供地圖的「第一個條目」是沒有意義的。相反,testNode[1]指的是鍵值爲1的地圖的輸入,該地址不存在。

+0

這解釋了一些事情。我想我會列出yaml文件頂部序列中的所有名稱。 – user245249