ROOT implementation of a simple SAX Handler.
This handler uses TSAXParser, a SAX Parser using the SAX interface of libxml2. This script will output all elements of the original xml file, if successfully parsed.
To run this program do:
Requires: saxexample.xml
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 << ">";
}
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()
{
SaxHandler *saxHandler = new SaxHandler();
saxParser->
ParseFile(dir+
"/xml/saxexample.xml");
}
int Int_t
Signed integer 4 bytes (int).
TSAXParser is a subclass of TXMLParser, it is a wraper class to libxml library.
virtual void ConnectToHandler(const char *handlerName, void *handler)
A default TSAXParser to a user-defined Handler connection function.
Int_t ParseFile(const char *filename) override
It creates the parse context of the xml file, where the xml file name is filename.
TXMLAttribute is the attribute of an Element.
const char * GetValue() const
const char * GetName() const override
Returns name of object.
- Author
- Sergey Linev
Definition in file SAXHandler.C.