2014-03-27 130 views
2

有沒有辦法獲得節點的名稱?例如:如何獲取節點的名稱?

Fruits: 
    - apple 
    - orange 
    - pear 

和C++:

YAML::Node fruit = parser["Fruits"]; 
cout << fruit.name() << endl; // should print "Fruits" 

是有什麼樣YAML ::節點::名稱()?我在Node.h中看不到任何符合法案的東西。

如果沒有,有什麼建議以簡單的方式修改代碼來記錄這些信息?

謝謝!

回答

1

你真正想要的是與地圖中的值相關聯的關鍵。你是對的,從一個值到它的關鍵沒有鏈接,但是當你首先瀏覽節點時,你可以存儲一個值。

如果所有的按鍵都是字符串鍵,那麼每當你傳遞一個值一些功能,只需沿着字符串鍵通以及:

// Instead of: 
doSomething(node[key]); 

// Call: 
doSomething(key, node[key]); 
+1

這將是非常好的解析器有此信息嵌入在其中,以便用戶代碼不必跟蹤錯誤捕獲目的的層次結構。 – user3416593

+0

如果解析器沒有保存這些信息,那麼我必須在try/catch塊中嵌入大多數YAML調用,並使用自己的錯誤處理或其他類似的入侵性錯誤陷阱。這給用戶代碼增加了很多開銷。 – user3416593

+0

如果您認爲這很重要,請在項目主頁上提交功能請求。 –