Tôi chỉ mới bắt đầu sử dụng rapidXML vì nó được đề xuất cho tôi. Ngay bây giờ để lặp qua nhiều anh chị em tôi làm điều này:C++ rapidxml node_iterator ví dụ?
//get the first texture node
xml_node<>* texNode = rootNode->first_node("Texture");
if(texNode != 0){
string test = texNode->first_attribute("path")->value();
cout << test << endl;
}
//get all its siblings
while(texNode->next_sibling() != 0){
string test = texNode->first_attribute("path")->value();
cout << test << endl;
texNode = texNode->next_sibling();
}
làm bài kiểm tra cơ bản và nó hoạt động tốt. Dù sao, tôi đã đi qua node_iterator mà dường như là một lớp lặp thêm để làm điều này cho tôi. anyways, tôi không thể tìm thấy bất kỳ ví dụ về cách sử dụng nó, vì vậy tôi đã tự hỏi nếu một số người có thể chỉ cho tôi :)
thanks!
hãy cẩn thận về rapidxml vì nó không thực hiện bất kỳ kiểm tra có ý nghĩa tốt nào ... –
Ví dụ trên là cách phù hợp để thực hiện. Trừ khi bạn kiểm tra texNode-> next_sibling()! = 0 ở đầu vòng lặp while, sau đó khi bạn tới anh chị em cuối cùng và đặt texNode = texNode-> next_sibling(); ở cuối vòng lặp while, textNode đó sẽ không có next_sibling vì nó là phần tử cuối cùng. Trong vòng lặp while sẽ không bao giờ xử lý anh chị em cuối cùng vì kiểm tra bắt đầu đó. – NSDestr0yer