root/tools/osm2pgrouting/tags/release-0.1/src/XMLParser.h

Revision 189, 2.8 KB (checked in by murray, 2 years ago)

osm2pgrouting: add a new tool to this project, which converts and imports osm data to a pgrouting
table

Line 
1/***************************************************************************
2 *   Copyright (C) 2008 by Daniel Wendt                                                                    *
3 *   gentoo.murray@gmail.com                                                                                       *
4 *                                                                         *
5 *   This program is free software; you can redistribute it and/or modify  *
6 *   it under the terms of the GNU General Public License as published by  *
7 *   the Free Software Foundation; either version 2 of the License, or     *
8 *   (at your option) any later version.                                   *
9 *                                                                         *
10 *   This program is distributed in the hope that it will be useful,       *
11 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
12 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
13 *   GNU General Public License for more details.                          *
14 *                                                                         *
15 *   You should have received a copy of the GNU General Public License     *
16 *   along with this program; if not, write to the                         *
17 *   Free Software Foundation, Inc.,                                       *
18 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
19 ***************************************************************************/
20
21#ifndef XMLPARSERT_H
22#define XMLPARSERT_H
23
24#include <expat.h>
25
26
27namespace xml
28{
29
30/**
31    Callback to be used with XMLParser
32 */
33class XMLParserCallback
34{
35public:
36
37  //! Constructor_
38  XMLParserCallback(){}
39  //! Destructor
40  virtual ~XMLParserCallback(){}
41
42  /**
43    Implement to construct an element with the given name,
44    call back for parser event "start element"
45   
46    \param name  [IN]  element name
47    \param atts  [IN]  the attributes
48   */ 
49        virtual void StartElement( const char *name, const char** atts )=0;
50
51  /**
52    Implement to process parser event "end element"
53    */
54        virtual void EndElement( const char *elementName )=0;
55
56
57};
58
59/**
60  XML-Parser based on expat library by
61  James Clark http://www.jclark.com/xml/expat.html.
62 
63  Fast, event driven, non-validating parser
64 
65  Dependencies:
66  - link with xmlparse.lib
67  - uses xmlparse.dll
68*/
69class XMLParser
70{
71
72public:
73  //! Constructor
74        XMLParser(){}
75        //! Destructor
76        virtual ~XMLParser(){}
77
78  /**
79    Parse a file from the file system-
80   
81    \param rCallback [IN] the parser callback
82    \param chFileName [IN] name of the file to be parsed 
83   
84    \return 0: everything ok, 1: file not found, 2: parsing error
85   */ 
86        int Parse( XMLParserCallback& rCallback, const char* chFileName );
87
88private:
89        //! the expat parser object / imported from „expat.h“
90        XML_Parser                      m_ParserCtxt;
91
92};
93
94} // end namespace xml
95#endif
Note: See TracBrowser for help on using the browser.