File indexing completed on 2026-08-06 09:20:02
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef EVTPARSERXML_HH
0022 #define EVTPARSERXML_HH
0023
0024 #include <fstream>
0025 #include <string>
0026 #include <vector>
0027
0028 class EvtParserXml final {
0029 public:
0030 bool open( std::string filename );
0031 bool close();
0032
0033 bool readNextTag();
0034
0035 std::string getTagTitle() { return _tagTitle; }
0036 std::string getParentTagTitle();
0037 int getLineNumber() { return _lineNo; }
0038 bool isTagInline() { return _inLineTag; }
0039
0040 std::string readAttribute( std::string attribute,
0041 std::string defaultValue = "" );
0042 bool readAttributeBool( std::string attribute, bool defaultValue = false );
0043 int readAttributeInt( std::string attribute, int defaultValue = -1 );
0044 double readAttributeDouble( std::string attribute, double defaultValue = -1. );
0045
0046 private:
0047 std::ifstream _fin;
0048 std::string _line;
0049 int _lineNo = 0;
0050
0051 std::string _tag;
0052 std::string _tagTitle;
0053 bool _inLineTag;
0054 std::vector<std::string> _tagTree;
0055
0056 bool processTagTree();
0057
0058 bool expandEnvVars( std::string& str );
0059 bool isAlphaNum( char c );
0060 };
0061
0062 #endif