¿Cómo colocar múltiples documentos en el contenedor Berkeley-DB XML?
-
28-10-2019 - |
Pregunta
Tengo un directorio con un montón de documentos XML y quiero ponerlos todos en un contenedor. En otras palabras, necesito hacer algo como esto:
dbxml> putDocument tests/*.xml
He escrito un programa GUI para hacerlo, pero el servidor host no tiene instalado X-Windows, por lo que debe estar en la línea de comandos.
Solución 3
Terminó usando un script que enumera los archivos y pone todo en el DB.
Otros consejos
Hago algo similar al recargar ciertos documentos XML en mi aplicación actual DB. Ayuda si todos los archivos que comparten una convención de nomenclatura común. En Python podría usar el siguiente script para agregar doc001.xml a 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'
Espero que ayude
Puede hacer que un script de shell escriba la lista de archivos XML a otro archivo y luego llame dbxml_load_container con la opción -f.