Sobby::Config::ParentEntry::ParentEntry(const xmlpp::Element& elem): Entry(elem.get_name() ) { xmlpp::Node::NodeList list = elem.get_children(); for(xmlpp::Node::NodeList::iterator iter = list.begin(); iter != list.end(); ++ iter) { xmlpp::Element* child = dynamic_cast<xmlpp::Element*>(*iter); if(child == NULL) continue; if(child->get_child_text() && !child->get_child_text()->is_white_space()) { ValueEntry* entry = new TypedValueEntry<Glib::ustring>( *child ); m_map[child->get_name()] = entry; } else { m_map[child->get_name()] = new ParentEntry(*child); } } }