Python解析XML字符串


Python解析XML字符串,网上查了半天,还就内置的xml.sax轻量级、简便。

鉴于网上的代码哪怕是最简单的示例,也带有很大迷惑性,最后还是自己整理备份一份为好,对于大多数普通情况直接用即可,无须修改。

BTW:还是JSON好用。

 
  1. # -*- coding: utf-8 -*-   
  2.   
  3. import xml.sax  
  4. import xml.sax.handler  
  5.   
  6. class XMLHandler(xml.sax.handler.ContentHandler):  
  7.     def __init__(self):  
  8.         self.buffer = ""                    
  9.         self.mapping = {}                  
  10.   
  11.     def startElement(self, name, attributes):  
  12.         self.buffer = ""                    
  13.   
  14.     def characters(self, data):  
  15.         self.buffer += data                      
  16.   
  17.     def endElement(self, name):  
  18.         self.mapping[name] = self.buffer           
  19.   
  20.     def getDict(self):  
  21.         return self.mapping  
  22.   
  23.   
  24. data = '''''<?xml version="1.0" encoding="UTF-8"?><note><to>World</to><from>Linvo</from><heading>Hi</heading><body>Hello World!</body></note>'''  
  25.   
  26. xh = XMLHandler()  
  27. xml.sax.parseString(data, xh)  
  28. ret = xh.getDict()  
  29.   
  30. import pprint  
  31. pprint.pprint(ret)  

相关内容