在第一章分别清晰的列出每一步的步骤,但这样的代码冗余,但XML多的时候,更是写了N行代码,进行重构。
详细:在init()中
tinyxml2::XMLDocument* homework = new tinyxml2::XMLDocument();
homework->LoadFile("homework.xml");
XMLElement* rootElement = homework->RootElement(); // Class
XMLElement* studentsElement = rootElement->FirstChildElement(); // Students
XMLElement* studentElement = studentsElement->FirstChildElement(); // student
while (studentElement) {
const XMLAttribute* attributeOfStudent = studentElement->FirstAttribute(); //获得student的name属性
while ( attributeOfStudent ) {
log("%s : %s",attributeOfStudent->Name(),attributeOfStudent->Value());
attributeOfStudent = attributeOfStudent->Next();
}
XMLElement* phoneElement = studentElement->FirstChildElement();//获得student的phone元素
log("phone : %s",phoneElement->GetText());
XMLElement* addressElement = phoneElement->NextSiblingElement();
log("address : %s",addressElement->GetText());
studentElement = studentElement->NextSiblingElement();
}
delete homework;