Tôi có tệp XML sau và tôi muốn lưu trữ nó bằng cách sử dụng các cấu trúc bên dưới.Phân tích cú pháp XML với cây thuộc tính tăng cường
các cấu trúc dữ liệu:
struct transitions
{
string oldstate;
string event;
string newstate;
};
struct XML_Diagram
{
string diag_name;
string diag_defaultstate;
list<string> diag_states;
list<string> diag_events;
list<transitions> diag_transitions;
};
file xml:
<diagram>
<diagname>DiagaX</diagname>
<states>
<state>A</state>
.............
</states>
<events>
<event>ev1</event>
.................
</events>
<defaultstate>A</defaultstate>
<transitions>
<transition>
<oldstate>A</oldstate>
<event>ev1</event>
<newstate>B</newstate>
</transition>
<transition>
<oldstate>B</oldstate>
<event>ev2</event>
<newstate>C</newstate>
</transition>
.........................
</transitions>
</diagram>
Rõ ràng với tôi làm thế nào tôi có thể truy cập vào diagram.states. tôi có thể làm điều đó với mã folowing:
using boost::property_tree::ptree;
ptree pt;
// Get diagram states
BOOST_FOREACH(ptree::value_type &v, pt.get_child("diagram.states"))
{
diag_states.push_back(v.second.data());
}
gì không phải là rõ ràng với tôi là làm thế nào tôi có thể truy cập dữ liệu từ tại diagram.transitions.transition mức?
Vấn đề của tôi là tôi không thể tìm thấy bất kỳ ví dụ nào trong tài liệu về cách phân tích các tệp xml phức tạp hơn với nhiều cấp độ.