XMLTag* TwoInOneAlg::Save() { XMLTag* tag = new XMLTag(XML_NODE_TWOINONEALG); tag->AddChild(m_firstAlg->Save()); tag->AddChild(m_secondAlg->Save()); return tag; }
void XMLFile::Parse() { XMLTag* parentTag = m_root; XMLTag* currentTag = nullptr; std::string attrName; std::string attrContent; for (Token token : m_tokens) { switch (token.m_type) { case TokenType::OpeningTagStart: currentTag = new XMLTag(); parentTag->AddChild(currentTag); parentTag = currentTag; break; case TokenType::ClosingTagStart: parentTag = parentTag->mp_parent; break; case TokenType::TagName: if (currentTag->m_name == "") currentTag->m_name = token.m_content; break; case TokenType::TagContent: currentTag->m_value = token.m_content; break; case TokenType::AttributeName: attrName = token.m_content; break; case TokenType::AttributeContent: attrContent = token.m_content; currentTag->m_attributes[attrName] = attrContent; break; case TokenType::TagEnd: break; case TokenType::EqualSign: break; case TokenType::DoubleQuote: break; } } }
XMLTag* Save() { XMLTag* tag = new XMLTag(GetName()); tag->AddChild(m_firstAlg->Save()); return tag; }
// Accessor methods // XMLTag* ImageInputSystem::Save() { XMLTag* tag = new XMLTag(XML_NODE_IMAGEINPUTSYSTEM); tag->AddChild(XMLTag::Tag(m_cameras)); return tag; }