00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef OR_TOOLS_UTIL_XML_HELPER_H_
00015 #define OR_TOOLS_UTIL_XML_HELPER_H_
00016
00017 #include <stack>
00018 #include <string>
00019 #include <utility>
00020 #include "base/macros.h"
00021
00022 using std::string;
00023
00024 namespace operations_research {
00025
00026
00027
00028
00029 class XmlHelper {
00030 public:
00031 XmlHelper();
00032
00033
00034 void StartDocument();
00035
00036
00037 void StartElement(const string& name);
00038
00039
00040 void AddAttribute(const string& key, int value);
00041
00042
00043 void AddAttribute(const string& key, const string& value);
00044
00045
00046 void EndElement();
00047
00048
00049 void EndDocument();
00050
00051
00052 const string& GetContent() const;
00053
00054 private:
00055 typedef std::pair<char, string> EscapePair;
00056 string content_;
00057 std::stack<string> tags_;
00058 bool direction_down_;
00059
00060 DISALLOW_COPY_AND_ASSIGN(XmlHelper);
00061 };
00062 }
00063 #endif // OR_TOOLS_UTIL_XML_HELPER_H_