File: __init__.py

package info (click to toggle)
python-nbxmpp 2.0.2-1%2Bdeb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,120 kB
  • sloc: python: 14,949; makefile: 8
file content (29 lines) | stat: -rw-r--r-- 837 bytes parent folder | download | duplicates (3)
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
def xml2str_sorted(data):
    s = "<" + data.name
    if data.namespace:
        if not data.parent or data.parent.namespace!=data.namespace:
            if 'xmlns' not in data.attrs:
                s += ' xmlns="%s"' % data.namespace
    for key in sorted(data.attrs.keys()):
        val = str(data.attrs[key])
        s += ' %s="%s"' % (key, val)

    s += ">"
    cnt = 0
    if data.kids:
        for a in data.kids:
            if (len(data.data)-1) >= cnt:
                s += data.data[cnt]
            if isinstance(a, str):
                s += a.__str__()
            else:
                s += xml2str_sorted(a)
            cnt += 1
    if (len(data.data)-1) >= cnt:
        s += data.data[cnt]
    if not data.kids and s.endswith('>'):
        s = s[:-1] + ' />'
    else:
        s += "</" + data.name + ">"
    return s