2014-02-16 4 views
1

새 구문에 문제가 있습니다. 다음 YAML 파일을 구문 분석 할 때 : 두 번째 줄은 YAML을 던지는 것은 아니지만,새 API에서 번호가 매겨진 색인을 사용하여 변환이 잘못되었습니다.

#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"다음 코드를 사용하여

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

를 : : TypedBadConversion < std :: string>.

둘 다 동일한 출력을 사용해야하지 않습니까? 또는 번호가 매겨진 인덱스는 시퀀스가 ​​아닌 맵에서만 작동합니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

0

YAML에서는지도가 정렬되지 않으므로지도의 "첫 번째 항목"을 묻는 것은 의미가 없습니다. 대신 testNode[1]은 존재하지 않는 1 키가있는지도 항목을 나타냅니다.

+0

그런 것들을 설명합니다. 나는 yaml 파일의 맨 위에 시퀀스의 모든 이름을 나열 할 것입니다. – user245249