1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| #include <Riostream.h>
#include <TList.h>
#include <TSAXParser.h>
#include <TXMLAttr.h>
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 << "</" << name << ">";
}
void SaxHandler::OnCharacters(const char *characters)
{
cout << characters;
}
void SaxHandler::OnComment(const char *text)
{
cout << "<!--" << text << "-->";
}
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);
saxParser->ParseFile("monfichier.xml");
} |
Partager