Tôi đang sử dụng boost::property_tree
. Các tài liệu hướng dẫn là rất mơ hồ và tổng thể không hữu ích cho hầu hết các phần. Nhìn vào nguồn/ví dụ cũng không giúp được gì nhiều.Tăng các đặc tính phân tích cú pháp của cây bất động sản và Xml
<VGHL>
<StringTable>
<Language>EN</Language>
<DataPath>..\\Data\\Resources\\Strings\\stringtable.bst</DataPath>
</StringTable>
</VGHL>
Làm thế nào tôi có thể lặp qua tất cả các yếu tố ở mức hiện tại:
Những gì tôi đang tự hỏi sau đây là? Nếu tôi làm điều này:
read_xml(fin, bifPropTree);
VGHL::String tablePath;
BOOST_FOREACH(boost::property_tree::wiptree::value_type &v,
bifPropTree.get_child(L"VGHL.StringTable"))
{
m_StringTable->ParseEntry(v.second, tablePath);
}
Trong ParseEntry
tôi cố gắng này:
VGHL::String langName = stringTree.get<VGHL::String>(L"StringTable.Language");
Kết quả trong một ngoại lệ (không không tồn tại). Tôi cũng đã thử điều này:
VGHL::String langName = stringTree.get<VGHL::String>(L"Language");
Cùng một vấn đề.
Từ hiểu biết của tôi khi tôi gọi ParseEntry
Tôi đang chuyển tham chiếu đến cây tại nút đó.
Có cách nào để giải quyết vấn đề này không, khi tôi có nhiều mục nhập StringTable
bằng cách sử dụng cây thuộc tính?
Cảm ơn bạn đã chỉ ra điều đó về cơ bản trong quá trình hợp nhất các codebases. VGHL và Ludo :: Chuỗi cả hai đều typedefs của std :: wstring :) Đó wasnt vấn đề :( – UberJumper
Ngoài ra tôi chỉ cần kiểm tra, mà doenst ether làm việc. Bạn có thể sử dụng vòng lặp, nhưng họ sẽ luôn luôn được trên mức hiện tại. – UberJumper