#berkeley-db-xml
#berkeley-db-xml
Вопрос:
У меня есть каталог с кучей XML-документов, и я хочу поместить их все в контейнер. Другими словами, мне нужно сделать что-то вроде этого:
dbxml> putDocument tests/*.xml
Для этого я написал программу с графическим интерфейсом, но на главном сервере не установлена X-windows, поэтому она должна быть в командной строке.
Ответ №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'
Надеюсь, это поможет
Ответ №2:
Вы могли бы использовать сценарий оболочки для записи списка XML-файлов в другой файл, а затем вызвать dbxml_load_container с опцией -f.
Ответ №3:
В итоге я использовал скрипт, который перечисляет файлы и помещает все в базу данных.