Skip to main content
 首页 » 编程设计

python之在 SQLite 数据库中存储 XML/HTML 文件——可能吗

2024年08月12日37findumars

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

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

用 python 和 SQLite 可以吗?还是我从错误的角度解决了这个问题?

提前致谢!

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

请您参考如下方法:

您可以将 XML/HTML 文件作为文本毫无问题地存储在文本列中。

明显的缺点是您无法真正查询 XML 中的值。

编辑: 这是一个例子。只需将您的 XML 文件读入变量并将其存储在数据库中,就像存储任何字符串以及您要存储的任何其他值一样。当您想使用 XML 时,只需从数据库中读取它并使用 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 your input file containing xml 
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)) 
conn.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)