之前我说过提取一个xml格式的数据,用的是正则表达式,不过这样很不专业。一般读取xml格式的数据有两种,第一种是DOM,第二种是SAX。对于比较小的文件使用DOM是比较好的选择。
微信支付prepayid得到的返回数据如下(命名为dom):
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<appid><![CDATA[wx8888888888888888]]></appid>
<mch_id><![CDATA[10012345]]></mch_id>
<nonce_str><![CDATA[Be8YX7gjCdtCT7cr]]></nonce_str>
<sign><![CDATA[885B6D84635AE6C020EF753A00C8EEDB]]></sign>
<result_code><![CDATA[SUCCESS]]></result_code>
<prepay_id><![CDATA[wx201410272009395522657a690389285100]]></prepay_id>
<trade_type><![CDATA[JSAPI]]></trade_type>
</xml>
首先引入dom的包
import xml.dom.minidom
得到xml文档
root = dom.documentElement
这里我们只需要得到标签内的数据,而且该xml数据结构简单,使用如下语句即可:
itemlist1 = root.getElementsByTagName('prepay_id')
item1 = itemlist1[0]
prepay_id=item1.firstChild.data
这样我们就得到了标签之间的数值。当然,DOM中还有很多别的操作,这里我还用不着,可以在网上看看资料。