python读取xml脚本

xml文件名citylist.xml,数据内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<response>
    <list>
    <city>
      <name>天津</name>
      <code>tianjin</code>
    </city>
    <city>
      <name>上海</name>
      <code>shanghai</code>
    </city>
  </list>
</response>
#-*-coding:utf-8-*-
import MySQLdb
from xml.dom import minidom
doc = minidom.parse("citylist.xml")
root = doc.documentElement
citys = root.getElementsByTagName("city")

conn = MySQLdb.connect(host="local",user="local",passwd="local",db="bw_local", charset='utf8')
cursor = conn.cursor()
for city in citys:
    #print city.toxml()
    nameNode = city.getElementsByTagName("name")[0]
    #print (nameNode.nodeName + ":" + nameNode.childNodes[0].nodeValue)
    codeNode = city.getElementsByTagName("code")[0]
    #print (codeNode.nodeName + ":" + codeNode.childNodes[0].nodeValue)
    cursor.execute('insert into original(city,code) values(%s,%s);',(nameNode.childNodes[0].nodeValue,codeNode.childNodes[0].nodeValue))

conn.commit()
cursor.close()
conn.close()
print "success"

 doc = minidom.parse("citylist.xml")表示将xml文件中的数据全部加载到变量doc中。

root = doc.documentElement表示获取xml的根结点

citys = root.getElementsByTagName("city")获取要结点下面所有tag为city的数据,这里的根结点是<response></response>,也就是说获取整个文件的city

可以通过for city in citys: print city.toxml()查看一下city的数据结构。 

<city>
      <name>天津</name>
      <code>tianjin</code>
</city>

city.getElementsByTagName("name")是获取city下面所有tag为name的数据,是一个数组,因为每一个城市只有一个name,所以可以使用nameNode = city.getElementsByTagName("name")[0]获取到<name>天津</name>这样的结点数据。nameNode.nodeName是获取<name></name>中的name,nameNode.childNodes[0].nodeValue是获取到<name>天津</name>中的“天津”。 

结果:

nameNode.nodeName:nameNode.childNodes[0].nodeValue
name:上海
code:shanghai
name:北京
code:beijing
name:保定
code:baoding 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值