diff options
| author | Xavier Morel <xmo@openerp.com> | 2012-01-17 10:47:48 +0100 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2012-01-17 10:47:48 +0100 |
| commit | e99358e2fa673e611ca4fd94d849151a0374d89f (patch) | |
| tree | d7c41b5dabc231e1e8dd8987df168d44744c175b /addons/web/common/xml2json.py | |
| parent | e4697c48a1373837890a2f7dabb82cffe98cb7f0 (diff) | |
[IMP] Xml2JSON: remove useless class indirection and unused methods
bzr revid: xmo@openerp.com-20120117094748-g9470elsdpx78im8
Diffstat (limited to 'addons/web/common/xml2json.py')
| -rw-r--r-- | addons/web/common/xml2json.py | 54 |
1 files changed, 20 insertions, 34 deletions
diff --git a/addons/web/common/xml2json.py b/addons/web/common/xml2json.py index ab134b09786..df3aad67fa5 100644 --- a/addons/web/common/xml2json.py +++ b/addons/web/common/xml2json.py @@ -3,38 +3,24 @@ # New BSD Licensed # # URL: http://code.google.com/p/xml2json-direct/ -import simplejson -from xml.etree import ElementTree -class Xml2Json(object): - @staticmethod - def convert_to_json(s): - return simplejson.dumps( - Xml2Json.convert_to_structure(s), sort_keys=True, indent=4) - - @staticmethod - def convert_to_structure(s): - root = ElementTree.fromstring(s) - return Xml2Json.convert_element(root) - - @staticmethod - def convert_element(el, preserve_whitespaces=False): - res = {} - if el.tag[0] == "{": - ns, name = el.tag.rsplit("}", 1) - res["tag"] = name - res["namespace"] = ns[1:] - else: - res["tag"] = el.tag - res["attrs"] = {} - for k, v in el.items(): - res["attrs"][k] = v - kids = [] - if el.text and (preserve_whitespaces or el.text.strip() != ''): - kids.append(el.text) - for kid in el: - kids.append(Xml2Json.convert_element(kid, preserve_whitespaces)) - if kid.tail and (preserve_whitespaces or kid.tail.strip() != ''): - kids.append(kid.tail) - res["children"] = kids - return res +def from_elementtree(el, preserve_whitespaces=False): + res = {} + if el.tag[0] == "{": + ns, name = el.tag.rsplit("}", 1) + res["tag"] = name + res["namespace"] = ns[1:] + else: + res["tag"] = el.tag + res["attrs"] = {} + for k, v in el.items(): + res["attrs"][k] = v + kids = [] + if el.text and (preserve_whitespaces or el.text.strip() != ''): + kids.append(el.text) + for kid in el: + kids.append(from_elementtree(kid, preserve_whitespaces)) + if kid.tail and (preserve_whitespaces or kid.tail.strip() != ''): + kids.append(kid.tail) + res["children"] = kids + return res |
