Ticket #4503: expattest.py

File expattest.py, 751 bytes (added by michich, 4 years ago)

a short demo of the problem

Line 
1#!/usr/bin/python
2
3import pyexpat
4
5def onStartElement(name, attrs):
6        qname_bad  = name.split(" ")
7        qname_good = name.rsplit(" ", 1)
8        attrs_bad  = dict()
9        attrs_good = dict()
10        for k, v in attrs.items():
11                if k.find(" ") != -1:
12                        aqname = k.split(" ")
13                        attrs_bad [(aqname[0], aqname[1])] = v
14                        aqname = k.rsplit(" ", 1)
15                        attrs_good[(aqname[0], aqname[1])] = v
16                        del attrs[k]
17        print "BAD: \n----\n%s\n%s\n" % (qname_bad,  attrs_bad)
18        print "GOOD:\n----\n%s\n%s\n" % (qname_good, attrs_good)
19
20parser = pyexpat.ParserCreate("UTF-8", " ")
21parser.StartElementHandler = onStartElement
22
23xml = """<?xml version="1.0"?>
24                <root xmlns="some weird namespace "
25                      xmlns:a="another weird namespace"
26                      a:foo='bar'
27                />
28"""
29
30parser.Parse(xml)