Python如何解析xml (xml.dom)

  介绍

这篇文章主要介绍了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)”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

Python如何解析xml (xml.dom)