介绍
这篇文章主要介绍了Python如何解析xml (xml。dom),具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
需求
有一个表,里面数据量比较大,每天一更新,其字段可以通过xml配置文件进行配置,即,可能每次建表的字段不一样。上游跑时会根据配置从源文件中提取,到入库这一步需要根据配置进行建表。
解决
写了一个简单的xml,配置需要字段及类型上游读取到对应的数据入库这一步,先把原表删除,根据配置建新表
xml文件
name=皌op_query", db_name=癳valuting_sys"比; id 查询 varchar (200) 假 查询 光伏 整数 假 光伏 avg_money 整数 假
处理脚本
# !/usr/bin/python #, - *安康;编码:utf-8 - * #作者:, wklken # desc:, use 用read db  xml 配置。 # - - - - - - - - - - - - - - - - - - - - - - - - # 2012 - 02年- 18岁, 创建 # - - - - - - - - - - - - - - - - - - - - - - - import 系统,操作系统 得到xml.dom import  minidom,节点 def read_dbconfig_xml (xml_file_path): content =, {} 时间=root minidom.parse (xml_file_path) 时间=table root.getElementsByTagName (“table") [0] # read dbname 以及table 名字。 时间=table_name table.getAttribute (“name") 时间=db_name table.getAttribute (“db_name") if len (table_name),祝辞,0,以及len (db_name),祝辞,0:=db_sql “create  database if not exists ”“时间+大敌;;db_name  +“”;, use “, +, db_name +,“;“ 时间=table_drop_sql “drop “, +, table_name +,“, if exists “, +, table_name +,“;“ content.update ({“db_sql",:, db_sql}) content.update ({“table_sql",:, table_drop_sql }) 其他: print “错误:attribute is  not define 好!,db_name=? +, db_name +,“, table_name=?, table_name sys.exit (1) # print table_name db_name 时间=table_create_sql “create  table “, +, table_name +“(“ # read primary 细胞 时间=primary_key table.getElementsByTagName (“primary_key") [0] 时间=primary_key_name primary_key.getElementsByTagName (“name") [0] childnodes [0] .nodeValue table_create_sql +=, primary_key_name +,“, INTEGER NOT NULL AUTO_INCREMENT PRIMARY 键,“ # print primary_key.toxml () # read ordernary 字段 时间=fields table.getElementsByTagName (“field") f_index =0 for field 拷贝字段: f_index +=1 时间=name field.getElementsByTagName (“name") [0] childnodes [0] .nodeValue 时间=type field.getElementsByTagName (“type") [0] childnodes [0] .nodeValue +=table_create_sql name +,“,“+,类型 if f_index  !=, len(领域): table_create_sql +=,,,, 时间=is_index field.getElementsByTagName (“is_index") [0] childnodes [0] .nodeValue +=table_create_sql “);“ content.update ({“table_create_sql",:, table_create_sql}) # character set  latin1 collate  latin1_danish_ci; print 内容 if __name__ ==,“__main__": read_dbconfig_xml (sys.argv [1])
涉及方法
根=minidom.parse (xml_file_path)获取dom对象
root.getElementsByTagName(“表”)根据标签获取节点列表
table.getAttribute(“名字”)获取属性
primary_key.getElementsByTagName(“名字”)[0]childnodes [0] .nodeValue 获取子节点的值(id得到id)
感谢你能够认真阅读完这篇文章,希望小编分享的“Python如何解析xml (xml。dom)”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!