- 论坛徽章:
- 0
|
本帖最后由 echo52 于 2017-03-29 13:22 编辑
回复 1# cwd0204
简单一点的实现如下,如果要LIST哪几项,自己 切片取出来即可:
- from xml.parsers.expat import ParserCreate
- LIST = []
- class DefaultSaxHandler(object):
- def start_element(self, name, attrs):
- #print('sax:start_element: %s, attrs: %s' % (name, str(attrs)))
- pass
- def end_element(self, name):
- #print('sax:end_element: %s' % name)
- pass
- def char_data(self, text):
- if text == ' ' or text == ' ' or text == '\n':
- pass
- else:
- global LIST
- LIST == LIST.append(text)
- return LIST
- xml = r'''<BCResponse>
- <processorHost>hhhhhdkksksks</processorHost>
- <responseCode>RJCT</responseCode>
- <pts_transaction_id>OY9Q6QMAXE6I</pts_transaction_id>
- <requestId>OY9Q6QMAXE6I</requestId>
- <responseCodeDescription>杀手</responseCodeDescription>
- <responseCodeDetail>NARR</responseCodeDetail>
- <responseStatus>REJECTED</responseStatus>
- <creditorName>电影</creditorName>
- <debtorName>Neil PAYMENTS-CN</debtorName>
- <remittanceType>CRDT</remittanceType>
- <requestedAmount xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="currencyPaymentAmount">
- <currencyValue>225.72 CNY (0.01)</currencyValue>
- </requestedAmount>
- </BCResponse>
- '''
- handler = DefaultSaxHandler()
- parser = ParserCreate()
- parser.StartElementHandler = handler.start_element
- parser.EndElementHandler = handler.end_element
- parser.CharacterDataHandler = handler.char_data
- parser.Parse(xml)
- print(LIST)
复制代码 执行结果:
['hhhhhdkksksks', 'RJCT', 'OY9Q6QMAXE6I', 'OY9Q6QMAXE6I', '杀手', 'NARR', 'REJECTED', '电影', 'Neil PAYMENTS-CN', 'CRDT', '225.72 CNY (0.01)']
|
|