Wie stelle ich mehrere Dokumente in den Berkeley-DB XML-Container ein?
-
28-10-2019 - |
Frage
Ich habe ein Verzeichnis mit einer Reihe von XML -Dokumenten und möchte alle in einen Container einsetzen. Mit anderen Worten, ich muss so etwas tun:
dbxml> putDocument tests/*.xml
Ich habe dazu ein GUI-Programm geschrieben, aber auf dem Host-Server wird X-Windows nicht installiert. Daher muss sich in der Befehlszeile befinden.
Lösung 3
Am Ende wurde ein Skript verwendet, das Dateien auflistet und alles in die DB steckt.
Andere Tipps
Ich mache etwas Ähnliches, wenn ich bestimmte XML -Dokumente in meine aktuelle Anwendung DB neu lade. Es hilft, wenn alle Dateien eine gemeinsame Namenskonvention teilen. In Python könnten Sie das folgende Skript verwenden, um doc001.xml zu doc009.xml hinzuzufügen:
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'
Ich hoffe, das hilft
Sie könnten ein Shell -Skript die Liste der XML -Dateien in eine andere Datei schreiben und dann aufrufen dbxml_load_container mit der Option -f.