Как поместить несколько документов в XML-контейнер Berkeley-DB? - PullRequest
2 голосов
/ 03 мая 2011

У меня есть каталог с кучей XML-документов, и я хочу поместить их все в контейнер. Другими словами, мне нужно сделать что-то вроде этого:

dbxml> putDocument tests/*.xml

Я написал программу с графическим интерфейсом для этого, но на хост-сервере не установлены X-windows, поэтому должен быть в командной строке.

Ответы [ 3 ]

1 голос
/ 21 августа 2012

Я делаю аналогичную вещь при перезагрузке определенных документов 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'

Надеюсь, это поможет

0 голосов
/ 10 января 2012

Завершается с помощью скрипта, который перечисляет файлы и помещает все в БД.

0 голосов
/ 02 июля 2011

Сценарий оболочки может записать список файлов XML в другой файл, а затем вызвать dbxml_load_container с параметром -f.

...