File: xml-tagreader-tagreader-cpp.html

package info (click to toggle)
qt-embedded 2.3.2-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 68,608 kB
  • ctags: 45,998
  • sloc: cpp: 276,654; ansic: 71,987; makefile: 29,074; sh: 12,305; yacc: 2,465; python: 1,863; perl: 481; lex: 480; xml: 68; lisp: 15
file content (122 lines) | stat: -rw-r--r-- 4,023 bytes parent folder | download
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>
Qt Toolkit - xml/tagreader/tagreader.cpp example file
</title><style type="text/css"><!--
h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }body { background: white; color: black; }
--></style>
</head><body bgcolor="#ffffff">

<table width="100%">
<tr><td><a href="index.html">
<img width="100" height="100" src="qtlogo.png"
alt="Home" border="0"><img width="100"
height="100" src="face.png" alt="Home" border="0">
</a><td valign=top><div align=right><img src="dochead.png" width="472" height="27"><br>
<a href="classes.html"><b>Classes</b></a>
-<a href="annotated.html">Annotated</a>
- <a href="hierarchy.html">Tree</a>
-<a href="functions.html">Functions</a>
-<a href="index.html">Home</a>
-<a href="topicals.html"><b>Structure</b></a>
</div>
</table>

<h1 align=center>A tiny SAX2 parser</h1><br clear="all">    
 
  This example presents a small <a href="xml-sax.html">SAX2</a> 
  reader that outputs the names of all elements in an
  XML document on the command line. The element names are 
  indented corresponding to their nesting
 
  This example is thoroughly explained in a 
  <a href="xml-sax-walkthrough.html">walkthrough</a>.
 
  <hr>
 
  Header file: <pre>/*
&#36;Id&#58; qt/examples/xml/tagreader/structureparser.h   2.3.2   edited 2001-01-26 $
*/  

#include &lt;<a href="qxml-h.html">qxml.h</a>&gt;

class QString;

class StructureParser : public QXmlDefaultHandler
{
public:
    bool startDocument();
    bool startElement( const QString&amp;, const QString&amp;, const QString&amp; , 
                       const QXmlAttributes&amp; );
    bool endElement( const QString&amp;, const QString&amp;, const QString&amp; );

private:
    <a href="qstring.html">QString</a> indent;
};
</pre>

 
  <hr>
 
  Implementation: <pre>/*
&#36;Id&#58; qt/examples/xml/tagreader/structureparser.cpp   2.3.2   edited 2001-01-26 $
*/

#include "structureparser.h"

#include &lt;iostream.h&gt;
#include &lt;<a href="qstring-h.html">qstring.h</a>&gt;

bool <a name="163"></a>StructureParser::startDocument()
{
    indent = "";
    return TRUE;
}

bool <a name="164"></a>StructureParser::startElement( const QString&amp;, const QString&amp;, 
                                    const QString&amp; qName, 
                                    const QXmlAttributes&amp; )
{
    cout &lt;&lt; indent &lt;&lt; qName &lt;&lt; endl;
    indent += "    ";
    return TRUE;
}

bool <a name="165"></a>StructureParser::endElement( const QString&amp;, const QString&amp;, const QString&amp; )
{
    indent.remove( 0, 4 );
    return TRUE;
}
</pre>

 
  <hr>
 
  Main:
<pre>/*
&#36;Id&#58; qt/examples/xml/tagreader/tagreader.cpp   2.3.2   edited 2001-01-26 $
*/

#include "structureparser.h"
#include &lt;<a name="qfile.h"></a><a href="qfile-h.html">qfile.h</a>&gt;
#include &lt;<a name="qxml.h"></a><a href="qxml-h.html">qxml.h</a>&gt;

int main( int argc, char **argv )
{
    for ( int i=1; i &lt; argc; i++ ) {
        StructureParser handler;
        <a name="QFile"></a><a href="qfile.html">QFile</a> xmlFile( argv[i] );
        <a name="QXmlInputSource"></a><a href="qxmlinputsource.html">QXmlInputSource</a> source( xmlFile );
        <a name="QXmlSimpleReader"></a><a href="qxmlsimplereader.html">QXmlSimpleReader</a> reader;
        reader.<a name="setContentHandler"></a><a href="qxmlsimplereader.html#3ce23b">setContentHandler</a>( &amp;handler );
        reader.<a name="parse"></a><a href="qxmlsimplereader.html#2d6b2a">parse</a>( source );
    }
    return 0;
}
</pre>
<p><address><hr><div align="center">
<table width="100%" cellspacing="0" border="0"><tr>
<td>Copyright  2001 Trolltech<td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a>
<td align="right"><div align="right">Qt version 2.3.2</div>
</table></div></address></body></html>