Python解析XML字串

來源:互聯網
上載者:User
Python解析XML字串
2012-06-22 13:30:28     我來說兩句      
收藏  我要投稿

網上查了半天,還就內建的xml.sax輕量級、簡便。

鑒於網上的代碼哪怕是最簡單的樣本,也帶有很大迷惑性,最後還是自己整理備份一份為好,對於大多數普通情況直接用即可,無須修改。

BTW:還是JSON好用,NND!

[python] www.2cto.com
# -*- coding: utf-8 -*- 
 
import xml.sax 
import xml.sax.handler 
 
class XMLHandler(xml.sax.handler.ContentHandler): 
    def __init__(self): 
        self.buffer = ""                   
        self.mapping = {}                 
 
    def startElement(self, name, attributes): 
        self.buffer = ""                   
 
    def characters(self, data): 
        self.buffer += data                     
 
    def endElement(self, name): 
        self.mapping[name] = self.buffer          
 
    def getDict(self): 
        return self.mapping 
 
 
data = '''''<?xml version="1.0" encoding="UTF-8"?><note><to>World</to><from>Linvo</from><heading>Hi</heading><body>Hello World!</body></note>''' 
 
xh = XMLHandler() 
xml.sax.parseString(data, xh) 
ret = xh.getDict() 
 
import pprint 
pprint.pprint(ret)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.