~ubuntu-branches/debian/sid/bandit/sid

« back to all changes in this revision

Viewing changes to examples/xml_sax.py

  • Committer: Package Import Robot
  • Author(s): Dave Walker (Daviey)
  • Date: 2015-07-22 09:01:39 UTC
  • Revision ID: package-import@ubuntu.com-20150722090139-fl0nluy0x8m9ctx4
Tags: upstream-0.12.0
ImportĀ upstreamĀ versionĀ 0.12.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import xml.sax
 
2
from xml import sax
 
3
import defusedxml.sax
 
4
 
 
5
class ExampleContentHandler(xml.sax.ContentHandler):
 
6
    def __init__(self):
 
7
        xml.sax.ContentHandler.__init__(self)
 
8
 
 
9
    def startElement(self, name, attrs):
 
10
        print('start:', name)
 
11
 
 
12
    def endElement(self, name):
 
13
        print('end:', name)
 
14
 
 
15
    def characters(self, content):
 
16
        print('chars:', content)
 
17
 
 
18
def main():
 
19
    xmlString = "<note>\n<to>Tove</to>\n<from>Jani</from>\n<heading>Reminder</heading>\n<body>Don't forget me this weekend!</body>\n</note>"
 
20
    # bad
 
21
    xml.sax.parseString(xmlString, ExampleContentHandler())
 
22
    xml.sax.parse('notaxmlfilethatexists.xml', ExampleContentHandler())
 
23
    sax.parseString(xmlString, ExampleContentHandler())
 
24
    sax.parse('notaxmlfilethatexists.xml', ExampleContentHandler)
 
25
 
 
26
    # good
 
27
    defusedxml.sax.parseString(xmlString, ExampleContentHandler())
 
28
 
 
29
    # bad
 
30
    xml.sax.make_parser()
 
31
    sax.make_parser()
 
32
    print('nothing')
 
33
    # good
 
34
    defusedxml.sax.make_parser()
 
35
 
 
36
if __name__ == "__main__":
 
37
    main()