Как поместить несколько документов в XML-контейнер Berkeley-DB?
У меня есть каталог с кучей документов XML, и я хочу поместить их все в контейнер. Другими словами, мне нужно сделать что-то вроде этого:
dbxml> putDocument tests/*.xml
Я написал программу с графическим интерфейсом для этого, но на хост-сервере не установлено X-windows, поэтому должно быть в командной строке.
3 ответа
Закончился использованием скрипта, который перечисляет файлы и помещает все в БД.
Я делаю аналогичную вещь при перезагрузке определенных документов 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'
надеюсь, это поможет
У вас может быть сценарий оболочки, который записывает список файлов XML в другой файл, а затем вызывает dbxml_load_container с параметром -f.