Importación de múltiples archivos xml desde una ubicación de carpeta<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Tengo una carpeta que contiene muchos archivos xml de los que me gustaría abrir, extraer información, guardar esta nueva información por separado y luego cerrar ambos archivos. Puedo hacer esto de manera singular utilizando el complemento 'Import xml', pero me gustaría revisar automáticamente una carpeta completa para reducir la cantidad de esfuerzo y el tiempo que dedico a hacer esto.
He adjuntado una carpeta de ejemplo con archivos xml para ayudar si alguien tiene tiempo para hacer esto.
Saludos
David
Re: Importando múltiples archivos xml desde una ubicación de carpetaHola David,
Revisa el complemento XML https://community.jmp.com/docs/DOC-7728 . Esto en combinación con lo que Ian @ JMP siempre debe tener en marcha.
Mejor,
Stan
Re: Importando múltiples archivos xml desde una ubicación de carpetaLo siento, pensé que el problema era el bucle, no la lectura. Sí, deberá analizar el XML para extraer lo que desea una vez que haya usado 'LoadTextFile ()' para colocar el contenido en una variable JSL. 'ParseXML ()' debería ayudar.
Re: Importando múltiples archivos xml desde una ubicación de carpetaIan,
gracias por la pronta respuesta, pero no puedo hacer que esto funcione con archivos xml, ¿necesito analizar esta u otra técnica para abrir este tipo de archivo?
Saludos
David
Re: Importar múltiples archivos xml desde una ubicación de carpetaEste código adicional está muy bien organizado y se puede acceder a toda su potencia y funcionalidad ejecutando una función "maestra". Por lo tanto, aquí es bastante fácil eludir la GUI del complemento y dejar que funcione en sus archivos xml en un bucle.
A continuación se muestra una forma de combinar el complemento con el bucle de Ian. Tenga en cuenta que es posible que deba establecer la variable de ruta, es decir, la ruta donde está instalado el complemento en su computadora. Además, si expande este código, evite usar nombres de variables que el código incluido ya haya utilizado desde el complemento, o puede tener problemas (p. Ej. No pude usar yo como un iterador de bucle).
// Define path variable (may already be defined)
Set Path Variable("ADDIN_HOME", "Path/to/my/Addins");
// Define all the functions of the Addin but skip the GUI
Include("$ADDIN_HOME/com.jmp.matthew.wolfe.xml.importer/xml parser III.jsl") << close window;
dir = Pick Directory("Select the directory containing your files", "$DESKTOP");
fList = Files In Directory(dir);
myInfo = [];
For(filenr = 1, filenr <= N Items(fList), filenr++,
// Use Function from Addin to parse file into a data table
dt = runParser(dir || "/" || fList[filenr]);
//Extract your information here! (e.g n rows of dt)
myInfo |/= N Rows(dt);
//Close the data table
Close(dt, no save);
);
// Did it work? Summarize in a new data table
New Table("my xml files",
add rows(N Items(fList)),
New Column("Sample", character, Values(fList)),
New Column("n rows", numeric, values(myInfo))
);
Re: Importar múltiples archivos xml desde una ubicación de carpetaNecesitará algo como esto, con 'Open ()' en lugar de 'Print ()', por supuesto:
dir = PickDirectory("Select the directory containing your files", "$DESKTOP");
fList = FilesInDirectory(dir);
for(i=1, i<=NItems(fList), i++,
Print(dir||"/"||fList[i]);
);
Re: Importar múltiples archivos xml desde una ubicación de carpetaSolo para actualizar a cualquiera que busque en esto ...
Esto ahora se maneja con facilidad en JMP 15 con el Asistente de importación XML y Importar múltiples archivos .
Puede usar el Asistente de importación en un solo archivo para definir la estructura XML. Luego copie la configuración XML del script de origen y péguelo en la configuración en el cuadro de diálogo Importar varios archivos.