/* * Copyright (c) 2011 Jan Kaluza * Licensed under the Simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #include #include #include #include #include namespace Swift { class DefaultStringTreeParser : public StringTreeParser { public: void handleTree(ParserElement::ref root) { root_ = root; } ParserElement::ref getRoot() { return root_; } private: ParserElement::ref root_; }; ParserElement::ref StringTreeParser::parse(const std::string &xml) { PlatformXMLParserFactory factory; DefaultStringTreeParser client; #if (SWIFTEN_VERSION >= 0x040000) std::unique_ptr parser = factory.createXMLParser(&client); #else XMLParser *parser = factory.createXMLParser(&client); #endif parser->parse(xml); ParserElement::ref root = client.getRoot(); #if (SWIFTEN_VERSION < 0x040000) delete parser; #endif return root; } }