Importation de plusieurs fichiers xml à partir d'un emplacement de dossier<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'ai un dossier contenant de nombreux fichiers xml que je voudrais ouvrir, extraire des informations, enregistrer ces nouvelles informations séparément, puis fermer les deux fichiers. Je peux le faire singulièrement en utilisant le complément "Importer xml", mais j'aimerais parcourir automatiquement un dossier complet pour réduire la quantité d'efforts et de temps que je passe à le faire.
J'ai joint un exemple de dossier avec des fichiers xml pour aider si quelqu'un a le temps de le faire.
Salutations
David
Re : Importation de plusieurs fichiers xml à partir d'un emplacement de dossierJuste pour mettre à jour pour tous ceux qui recherchent sur ce...
Ceci est maintenant géré facilement dans JMP 15 avec le Assistant d'importation XML et Importer plusieurs fichiers .
Vous pouvez utiliser l'assistant d'importation sur un seul fichier pour définir la structure XML. Copiez ensuite les paramètres XML du script source et collez-les dans les paramètres de la boîte de dialogue Importer plusieurs fichiers.
Re : Importation de plusieurs fichiers xml à partir d'un emplacement de dossierCe code complémentaire est très bien organisé et toute sa puissance et ses fonctionnalités sont accessibles en exécutant une fonction "maître". Par conséquent, ici, il est assez facile de contourner l'interface graphique de l'addin et de le laisser fonctionner sur vos fichiers xml en boucle.
Vous trouverez ci-dessous une façon de combiner le complément avec la boucle de Ian. Notez que vous devrez peut-être définir la variable de chemin, c'est-à-dire le chemin d'accès à l'emplacement d'installation du complément sur votre ordinateur. De plus, si vous développez ce code, évitez d'utiliser des noms de variables qui sont déjà utilisés par le code inclus à partir du complément, ou vous risquez de rencontrer des problèmes (par exemple je ne pouvais pas utiliser je comme itérateur de boucle).
// 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 : Importation de plusieurs fichiers xml à partir d'un emplacement de dossierSalut David,
Découvrez le complément XML https://community.jmp.com/docs/DOC-7728 . Ceci en combinaison avec ce que Ian@JMP fourni devrait vous aider à démarrer.
Meilleur,
Stan
Re : Importation de plusieurs fichiers xml à partir d'un emplacement de dossierDésolé, je pensais que le problème était la boucle, pas la lecture. Oui, vous devrez analyser le XML pour extraire ce que vous voulez une fois que vous avez utilisé 'LoadTextFile()' pour mettre le contenu dans une variable JSL. 'ParseXML()' devrait aider.
Re : Importation de plusieurs fichiers xml à partir d'un emplacement de dossierIan,
merci pour la réponse rapide mais je n'arrive pas à faire fonctionner cela avec des fichiers xml, dois-je les analyser ou une autre technique pour ouvrir ce type de fichier?
Salutations
David
Re : Importation de plusieurs fichiers xml à partir d'un emplacement de dossierVous aurez besoin de quelque chose comme ça, avec 'Open()' au lieu de 'Print()' bien sûr :
dir = PickDirectory("Select the directory containing your files", "$DESKTOP");
fList = FilesInDirectory(dir);
for(i=1, i<=NItems(fList), i++,
Print(dir||"/"||fList[i]);
);