#include #include #include #include class SaxHandler { public: SaxHandler() { } void OnStartDocument() { } void OnEndDocument(); void OnStartElement(const char*, const TList*); void OnEndElement(const char*); void OnCharacters(const char*); void OnComment(const char*); void OnWarning(const char*); void OnError(const char*); void OnFatalError(const char*); void OnCdataBlock(const char*, Int_t); }; void SaxHandler::OnEndDocument() { cout << endl; } void SaxHandler::OnStartElement(const char *name, const TList *attributes) { cout << "<" << name; TXMLAttr *attr; TIter next(attributes); while ((attr = (TXMLAttr*) next())) { cout << " " << attr->GetName() << "=\"" << attr->GetValue() << "\""; } cout << ">"; } void SaxHandler::OnEndElement(const char *name) { cout << ""; } void SaxHandler::OnCharacters(const char *characters) { cout << characters; } void SaxHandler::OnComment(const char *text) { cout << ""; } void SaxHandler::OnWarning(const char *text) { cout << "Warning: " << text << endl; } void SaxHandler::OnError(const char *text) { cerr << "Error: " << text << endl ; } void SaxHandler::OnFatalError(const char *text) { cerr << "FatalError: " << text << endl ; } void SaxHandler::OnCdataBlock(const char *text, Int_t len) { cout << "OnCdataBlock() " << text; } void SAXHandler() { TSAXParser *saxParser = new TSAXParser(); SaxHandler *saxHandler = new SaxHandler(); saxParser->ConnectToHandler("SaxHandler", saxHandler); TString dir = gROOT->GetTutorialDir(); saxParser->ParseFile(dir+"/xml/saxexample.xml"); }