是否可以直接在XMLite数据库中存储XML / HTML文件?
我在python中编写一个程序,它应该解析XML / HTML文件并将值存储在数据库中。但是,XML / HTML文件中的字段可能会有所不同,我认为将整个XML / HTML文件简单地存储在数据库中然后仅在使用时解析它会更容易。
这可能与python和SQLite一起使用吗?还是我从错误的角度来解决这个问题?
提前致谢!
编辑:任何人都可以共享一个关于如何存储文件的代码示例吗?我知道这是可能的,但我不确定如何去做。答案 0 :(得分:4)
您可以将XML / HTML文件存储为文本,而不会出现问题。
明显的缺点是您无法真正查询XML中的值。
编辑: 这是一个例子。只需将XML文件读入变量并将其存储在数据库中,就像存储任何字符串一样,以及要存储的任何其他值。当您想要使用XML时,只需从DB读取它并使用XML解析器解析它。
# connect to database and create table
import sqlite3
conn = sqlite3.connect(":memory:")
conn.execute('''create table my_table (value1 integer, value2 integer, xml text)''')
# read text from file
f = file('/tmp/my_file.xml')
xml_string_from_file = f.read()
# insert text into database
cur = conn.cursor()
cur.execute('''insert into my_table (value1, value2, xml) values (?, ?, ?)''', (23, 42, xml_string_from_file))
cur.commit()
# read from database into variable
cur.execute('''select * from my_table''')
xml_string_from_db = cur.fetchone()[2]
# parse with the XML parser of your choice
from xml.dom.minidom import parseString
dom = parseString(xml_string_from_db)