2010-07-02 3 views
1

SQLite 데이터베이스에 XML/HTML 파일을 직접 저장할 수 있습니까?SQLite 데이터베이스 내에 XML/HTML 파일 저장 가능?

XML/HTML 파일을 구문 분석하고 데이터베이스에 값을 저장해야하는 python 프로그램을 작성하고 있습니다. 그러나 XML/HTML 파일 내부의 필드가 다를 수 있으며 전체 XML/HTML 파일을 데이터베이스에 저장 한 다음 사용하는 경우에만 구문 분석하기가 더 쉽다고 생각했습니다.

파이썬과 SQLite로 가능합니까? 아니면 잘못된 각도에서이 문제에 접근하고 있습니까?

미리 감사드립니다.

편집 : 누구나 파일을 저장하는 방법에 대한 코드 샘플을 공유 할 수 있습니까? 나는 그것이 가능하다는 것을 이해하지만 나는 그것을하는 방법에 대해 확신 할 수 없다.

+2

실제로 SQLite에 저장할 수 있습니다. 파싱 ​​및 사용 방법은 귀하에게 달려 있습니다. SQLite는 타입에 관해서도 꽤 관대합니다 ... –

답변

4

텍스트 열에 XML/HTML 파일을 문제없이 텍스트로 저장할 수 있습니다.

분명한 단점은 XML에서 값을 쿼리 할 수 ​​없다는 것입니다.

편집 : 다음은 예입니다. XML 파일을 변수로 읽어 들인 다음 저장하려는 다른 값과 함께 문자열을 저장하는 것처럼 DB에 저장하십시오. 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을 다루었습니다. –

관련 문제