2010-07-02 41 views
1

是否可以直接在SQLite數據庫中存儲XML/HTML文件?在SQLite數據庫中存儲XML/HTML文件 - 可能嗎?

我正在寫一個程序在Python應該解析XML/HTML文件並將值存儲在數據庫中。但是,XML/HTML文件中的字段可能會有所不同,我認爲將整個XML/HTML文件存儲在數據庫中然後僅在使用時才解析它會更容易。

這是可能與python和SQLite?還是我從錯誤的角度來處理這個問題?

提前致謝!

編輯:任何人都可以共享代碼示例如何存儲文件?我知道這是可能的,但我不確定如何去做。

+2

你真的可以在SQLite中存儲任何東西。它如何被分析和使用取決於你。 SQLite對類型相當寬鬆,甚至... – 2010-07-02 19:24:43

回答

4

您可以將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 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) 
+0

這意味着我打開XML/HTML文件並將內容複製到文本列中?無法查詢這些值對我的場景來說沒問題。如果我聽起來很愚蠢,我很抱歉,我第一次將數據庫和XML一起處理。 – 2010-07-02 15:59:31

相關問題