/* * Copyright (c) 2011 Kevin Smith * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include #include #include #include #include #include namespace Swift { class ParserElement { public: typedef boost::shared_ptr ref; ParserElement(const std::string& name, const std::string& xmlns, const AttributeMap& attributes); virtual ~ParserElement(); virtual operator bool(); ParserElement::ref addChild(const std::string& name, const std::string& xmlns, const AttributeMap& attributes); void appendCharacterData(const std::string& data); std::string getText(); std::string getName(); std::string getNamespace(); std::vector getChildren(const std::string& name, const std::string& xmlns); ParserElement::ref getChild(const std::string& name, const std::string& xmlns); const AttributeMap& getAttributes() const {return attributes_;} private: std::vector children_; std::string name_; std::string xmlns_; AttributeMap attributes_; std::string text_; }; }