關於Python量化合約系統開發(原始碼分析搭建)

Tg_StPv888發表於2023-03-24

def xml_parse(xml_str):    class EchoTarget(object):        def __init__(self):            self.data_list = []            self.data_dict = {}            self.tag = ''            self.value = ''            self.attr = ''        def start(self, tag, attrib):            # start 在元素開啟時觸發。資料和元素的子元素仍不可用。            self.tag = tag            if dict(attrib):                self.attr = dict(attrib)            # print("start %s %r" % (tag, dict(attrib)))        def end(self, tag):            # end 在元素關閉時觸發。所有元素的子節點,包括文字節點,現在都是可用的。            if self.value:                self.data_list.append(dict(                    key=self.tag,                    value=self.value,                    attr=self.attr                ))            # print("end %s" % tag)        def data(self, dt):            # data 觸發文字子節點並訪問該文字。            if isinstance(dt, str):                if dt.strip():                    self.value = dt            # print("data %r" % dt)        def comment(self, text):            print("comment %s" % text)        def close(self):            # close 在解析完成後觸發。            return self.data_list    # 解析xml字串    parser = etree.XMLParser(target=EchoTarget())    return etree.XML(xml_str, parser)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70016646/viewspace-2941419/,如需轉載,請註明出處,否則將追究法律責任。

相關文章