Berkeley DB XML Python basics
In an earlier post a C++ snippet can be found where a DB XML container was created (or opened if already exists) and a document read from stdin was put into that container. That same snippet done in Python is pretty much identical:
from bsddb3.db import *
from dbxml import *
mgr = XmlManager(DBXML_ALLOW_EXTERNAL_ACCESS)
uc = mgr.createUpdateContext()
try:
cont = mgr.openContainer("testcontainer.dbxml", DB_CREATE|DBXML_ALLOW_VALIDATION, XmlContainer.WholedocContainer)
doc = mgr.createDocument()
input = mgr.createStdInInputStream()
doc.setContentAsXmlInputStream(input)
cont.putDocument(doc, uc, DBXML_GEN_NAME)
except XmlException, inst:
print "XmlException (", inst.ExceptionCode,"): ", inst.What
if inst.ExceptionCode == DATABASE_ERROR:
print "Database error code:",inst.DBError
Categorised as: snippet