在XMLite数据库中存储XML / HTML文件 - 可能吗?

时间:2010-07-02 15:40:25

标签: python xml sqlite

是否可以直接在XMLite数据库中存储XML / HTML文件?

我在python中编写一个程序,它应该解析XML / HTML文件并将值存储在数据库中。但是,XML / HTML文件中的字段可能会有所不同,我认为将整个XML / HTML文件简单地存储在数据库中然后仅在使用时解析它会更容易。

这可能与python和SQLite一起使用吗?还是我从错误的角度来解决这个问题?

提前致谢!

编辑:任何人都可以共享一个关于如何存储文件的代码示例吗?我知道这是可能的,但我不确定如何去做。

1 个答案:

答案 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)