Problèmes liés à l'importation de fichiers XML avec JSL, à l'utilisation de la commande Parse XML et à l'accès aux balises enfantsBonjour, j'essaie d'importer quelques centaines de fichiers XML. Ces fichiers doivent être présentés sur une seule ligne et certaines lignes doivent être divisées en plusieurs colonnes. Pour autant que je sache, l'assistant d'importation XML est absent. J'ai essayé d'utiliser le code de l'assistant d'importation comme point de départ, mais A) je ne voyais pas comment introduire facilement beaucoup de nuances (comme spécifier le fractionnement du texte en colonnes, une colonne pouvant contenir jusqu'à 35 000 entrées au format CSV). string) et
je n'ai pas trouvé beaucoup de documentation sur les paramètres XML. J'ai trouvé à la fois de la documentation et un support communautaire sur Parse XML. Cependant, j'ai travaillé pendant un bon moment pour adapter le code que j'ai trouvé sur les forums et dans l'index des scripts (et peut-être même quelques requêtes plutôt inutiles vers ChatGPT) en vain. Je suis vraiment un novice en JSL (et en codage en général), donc cela pourrait être très simple.
C'est ce que j'ai en ce moment. J'en avais plus, mais je suppose que pour commencer, je veux juste pouvoir accéder aux données XML et utiliser correctement la commande Parse, mais j'ai de sérieux problèmes pour créer autre chose qu'une table, et je ne semble pas être saisir l'attribut correctement, comme le tableau apparaît sans nom :
// Specify your preferred default folder
default_folder = "G:\My Drive\Edward H Chandler, Jr\VCU - Research\CERCAS\Project 46\XRD";
Set Default Directory( default_folder );
// Use the default folder to pick a file
file contents = Load Text File( Pick File(default_folder) );
Parse XML( file contents,
On Element(
"http://www.xrdml.com/XRDMeasurement/2.1^sample",
StartTag(
sheetname = XML Attr(
"http://www.xrdml.com/XRDMeasurement/2.1^type"
);
dt = New Table( sheetname );
row = 1;
col = 1;
)
)
);Je m'inspire en grande partie de ici et ici , mais je remarque une syntaxe non documentée, comme l'inclusion d'un deuxième terme dans la commande XML Attr avec "Untitled" dans ce premier lien, donc je ne suis même pas sûr que ce code soit généralement applicable, même si je l'ai obtenu. pour travailler sur le fichier BigData pour lequel il a été conçu. Je ne suis pas sûr non plus de l'utilisation du "^" pour indiquer les enfants, mais je suis un peu perdu à ce stade. Je suppose que cela pourrait également être un problème avec l'espace de noms intitulé page Web, mais je crois comprendre qu'une chaîne est une chaîne est une chaîne.
Quoi qu'il en soit, quelqu'un a-t-il des suggestions ou des commentaires ? Je suis même prêt à revenir à la voie des paramètres XML.
J'ai également joint l'un des fichiers XML. Il s'agissait à l'origine d'un fichier .xrdml, mais je crois comprendre qu'il est structuré comme un fichier XML, j'ai donc simplement changé le type de fichier.
Merci d'avance!
Automatisation et scriptsles fenêtresRe : Problèmes liés à l'importation de fichiers XML avec JSL, à l'aide de la commande Parse XML et à l'accès aux balises enfantsÀ quoi souhaiteriez-vous que les données ressemblent au final ?
Re : Problèmes liés à l'importation de fichiers XML avec JSL, à l'aide de la commande Parse XML et à l'accès aux balises enfantsSalut @jthi - donc la façon dont j'allais le faire était simplement de placer tout le texte et les attributs dans des colonnes séparées, une ligne par fichier, puis certaines parties du fichier ont du texte qui est en réalité deux colonnes ou plus (comme les dizaines de milliers de entrée chaîne au format CSV vers la fin ou comme la ligne des niveaux PHD inférieur et supérieur dans les 20 premières lignes). Mais les diviser semble être assez facile une fois que je suis capable d'obtenir les valeurs.Re : Problèmes liés à l'importation de fichiers XML avec JSL, à l'aide de la commande Parse XML et à l'accès aux balises enfantsWide Guess ne vous mène-t-il pas assez loin ?

Re : Problèmes liés à l'importation de fichiers XML avec JSL, à l'aide de la commande Parse XML et à l'accès aux balises enfants@jthi Merci pour la réponse et désolé pour la réponse tardive - Welp. Une supposition large est définitivement la voie à suivre. Je pensais avoir cliqué dessus, mais je suppose que j'ai mal cliqué ou quelque chose du genre. Merci de l'avoir signalé.
Voici une autre question avec laquelle j'ai un peu de mal. Je souhaite importer ceci dans une feuille existante, donc faire correspondre les colonnes existantes, puis peut-être lancer un message d'erreur s'il y a une colonne qui ne correspond pas. Je souhaite également diviser certaines cellules en fonction de délimiteurs, donc je suppose en utilisant la fonction Word(). Cependant, je ne sais pas trop comment procéder rapidement. Le mieux que je puisse trouver est de créer un tableau intermédiaire, puis de demander au script de lire le tableau, peut-être d'avoir une fenêtre de saisie utilisateur pour la ligne à copier (il y aura> 250 lignes), de copier les informations lors de la division avec Word. (), génère un message d'erreur si toutes les colonnes ne correspondent pas, puis supprime la table intermédiaire factice à la fin (peut-être avec un bouton d'approbation "ok"). Je pense que je peux comprendre comment faire cela, mais existe-t-il un moyen de le faire directement dans la table à laquelle j'obtiens finalement les informations sans cette table intermédiaire ? La documentation de la commande XML Setting est minime, à moins qu'elle ne me manque quelque part.
Merci!
Re : Problèmes liés à l'importation de fichiers XML avec JSL, à l'aide de la commande Parse XML et à l'accès aux balises enfantsAprès avoir transféré les données dans la table JMP (le grand format fonctionne probablement), vous commencez à comprendre différentes méthodes que JMP peut nettoyer/modifier davantage les données. Je ne pense pas que vous puissiez tout faire directement dans l'assistant d'importation XML (analyser XML pourrait très probablement le faire, mais c'est assez compliqué à utiliser, à mon avis).
Re : Problèmes liés à l'importation de fichiers XML avec JSL, à l'aide de la commande Parse XML et à l'accès aux balises enfantsOui, large était mon point de départ, puis j'ai fait une tonne de modifications des noms de colonnes, de fractionnement des colonnes, de mise des données des colonnes dans la propriété d'unité des autres et de les supprimer, etc. Le fichier final est joint si quelqu'un le trouve utile comme guide pour certaines choses à faire lors du nettoyage d'un fichier XML. Ce n'est pas joli, mais c'est là.