解析xml文件并将数据存储在数据库中
Posted
技术标签:
【中文标题】解析xml文件并将数据存储在数据库中【英文标题】:parse xml file and store data in database 【发布时间】:2016-06-30 07:24:17 【问题描述】:import mysqldb
from xml.dom import minidom
import xml.dom.minidom
xmldoc = xml.dom.minidom.parse("Country.xml")
country= xmldoc.getElementsByTagName("country")[0]
sensors = country.getElementsByTagName("sensor")
for sensor in sensors:
Translation = sensor.getElementsByTagName("Translation")[0].firstChild.data
Name = sensor.getElementsByTagName("Name")[0].firstChild.data
Prefix = sensor.getElementsByTagName("Prefix")[0].firstChild.data
Percentage = sensor.getElementsByTagName("Percentage")[0].firstChild.data
Position = sensor.getElementsByTagName("Position")[0].firstChild.data
db = MySQLdb.connect("localhost","root","akshay","country")
# prepare a cursor object using cursor() method
cursor = db.cursor()
# Drop table if it already exist using execute() method.
cursor.execute("DROP TABLE IF EXISTS country_table")
# Create table as per requirement
sql = """CREATE TABLE country_table (_
Translation VARCHAR(20) NOT NULL,
Name VARCHAR(20) NOT NULL,
Prefix INT(5) NOT NULL,
Percentage INT(3) NOT NULL,
Position INT(3) NOT NULL
)"""
sql1= ("INSERT INTO country_table(Translation, Name, Prefix, Percentage,Position) VALUES(%s, %s, %s, %s,%s)"
%(Translation, Name, Prefix, Percentage,Position))
try:
# Execute the SQL command
cursor.execute(sql1)
except:
# Rollback in case there is any error
db.rollback()
# disconnect from server
db.close()
我收到以下错误:
Traceback(最近一次调用最后一次):文件“test.py”,第 5 行,在 xmldoc = xml.dom.minidom.parse("Country.xml") 文件 "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/dom/minidom.py", 第 1918 行,解析中 返回 expatbuilder.parse(file) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/dom/expatbuilder.py”, 第 924 行,解析中 结果 = builder.parseFile(fp) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/dom/expatbuilder.py”, 第 211 行,在 parseFile 中 parser.Parse("", True) xml.parsers.expat.ExpatError: no element found: line 43, column 0
请帮忙。
【问题讨论】:
你能发布 XML 文件吗? i.stack.imgur.com/af5MP.png 【参考方案1】:您还没有关闭 Origination 和 Transaction 标签,只需关闭它们,它应该可以正常工作。
【讨论】:
以上是关于解析xml文件并将数据存储在数据库中的主要内容,如果未能解决你的问题,请参考以下文章