如何将多个文档放入Berkeley-DB XML容器?

时间:2011-05-03 08:09:36

标签: berkeley-db-xml

我有一个包含大量XML文档的目录,并希望将所有这些文档放入容器中。 换句话说,我需要做这样的事情:

dbxml> putDocument tests/*.xml

我已经编写了一个GUI程序来执行此操作,但主机服务器没有安装X-windows,因此必须在命令行中。

3 个答案:

答案 0 :(得分:1)

在将某些XML文档重新加载到我当前的应用程序数据库中时,我做了类似的事情。如果所有文件共享一个共同的命名约定,它会有所帮助。在python中,您可以使用以下脚本将doc001.xml添加到doc009.xml:

from bsddb3.db import *
from dbxml import *

#Load source files 001 - 009

sourceDir = 'C:/directory-containing-xml-docs'
fileRange = range(1,10)

for x in fileRange:
    mycontainer = mymgr.openContainer("myDB.dbxml")    
    xmlucontext = mymgr.createUpdateContext()    
    xmlinput = mymgr.createLocalFileInputStream(sourceDir + "doc00" + str(x) + ".xml")    
    mycontainer.putDocument("doc00" + str(x) + ".xml", xmlinput, xmlucontext)
    print 'Added: ' + str(x)   
    del mycontainer

print '1 - 9 Added'

希望有所帮助

答案 1 :(得分:0)

您可以让shell脚本将XML文件列表写入另一个文件,然后使用-f选项调用dbxml_load_container

答案 2 :(得分:0)

使用列出文件的脚本结束并将所有内容放入数据库。