Importation XML directement dans les tables de données<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour,
Je souhaite importer un ensemble de données à partir de XML (bien formé) directement dans une table de données. C'est quelque chose qu'Excel peut faire, donc je suis sûr que JMP le peut ! Le XML et les tableaux de données finaux ressemblent aux exemples ci-dessous ; il existe un ensemble de tests avec des résultats pour des broches individuelles, associés à une matrice, faisant tous partie d'un lot global, avec des attributs associés tels que le testeur ou les coordonnées x, y (il est basé sur les données de test des semi-conducteurs, comme vous l'avez peut-être deviné !) . L'ensemble de données pourrait être très long.
Je sais qu'il existe une fonction Parse XML JSL mais je n'arrive pas à comprendre comment l'implémenter dans cette situation. Toutes les suggestions reçues avec gratitude!
Merci, Matthieu.
| lot_id | testeur_type | die_id | die_x | mourir_y | nom du test | unité | pin_name | résultat |
| BLABLA | J750 | 1 | 1 | 1 | TEST1 | UN | abc | 1234 |
| BLABLA | J750 | 1 | 1 | 1 | TEST1 | UN | DÉF | 2345 |
| BLABLA | J750 | 1 | 1 | 1 | TEST2 | UN | XCV | 414 |
| BLABLA | J750 | 1 | 1 | 1 | TEST2 | UN | VBN | 1351 |
| BLABLA | J750 | 2 | 3 | 4 | TEST1 | UN | abc | 5433 |
| BLABLA | J750 | 2 | 3 | 4 | TEST1 | UN | DÉF | 4321 |
| BLABLA | J750 | 2 | 3 | 4 | TEST2 | UN | XCV | 6856 |
| BLABLA | J750 | 2 | 3 | 4 | TEST2 | UN | VBN | 5345 |
Re : Importation XML directement dans des tables de donnéesSalut, j'ai eu une erreur quand j'ai écrit ceci
Analyser XML ( FichierQas ,
Sur l'élément ( "Groupes d'indicateurs" ,
Balise de début (
dt = Nouveau tableau ( "TestJMPTable" ) ;
dt << Nouvelle colonne ( "N" , Numérique ) ;
dt << Nouvelle colonne ( "Fichier Graphique" , Personnage ) ;
dt << Nouvelle colonne ( "Description" , Personnage ) ;
)) ;
rangée = 1 ;
sur l'élément ( "N" ,
Marque de début (
si ( rangée > 0 , dt << Addrows ( 1 )) ;
Colonne ( dt , "N" )[ rangée ()] = Attribut XML ( "N" ) ;
)) ,
Balise de fin ()
) ;
Re : Importation XML directement dans des tables de donnéesPour ceux qui s'intéressent au XML (il semble apparaître de plus en plus ces jours-ci), je peux signaler qu'un assistant d'importation XML est en cours de développement actif dans JMP 15. Il permet une sélection pointer-cliquer pour s'assurer que JMP comprend le bon format de votre XML. JMP 15 sera disponible à l'automne 2019.
Re : Importation XML directement dans des tables de donnéesLoad Text File() est une alternative à Open() pour les fichiers XML et autres fichiers texte.Re : Importation XML directement dans des tables de donnéesExcellent exemple.J'ai trouvé cela beaucoup plus facile à comprendre que le Guide de script ou l'Index de script.Merci!
Re : Importation XML directement dans des tables de donnéesSalut Stan,
Je ne savais pas que vous étiez un homme JMP, mais maintenant je vois la petite icône JMP sous votre nom, ce qui explique cela
Merci encore pour votre aide et je vais en effet suggérer cela comme une amélioration future.
Salutations,
Matthieu.
Re : Importation XML directement dans des tables de donnéesMat,
Super!Je suis content que vous l'ayez trouvé utile.Notre équipe d'assistance est fantastique et est toujours prête à aider les clients pour toute question ou commentaire que vous pourriez avoir.
La meilleure façon d'ajouter des fonctionnalités à une future version de JMP est d'envoyer la demande directement à support@jmp.com .
Acclamations,
Stan
Re : Importation XML directement dans des tables de donnéesSalut Peter,
Merci.Je suis content que vous ayez trouvé l'exemple utile.J'ai appliqué mon implémentation en utilisant les exemples de l'index de script.J'ai recherché "XML" dans l'index de script et il a renvoyé plusieurs résultats.
Je vais soumettre une demande pour que la documentation soit mise à jour afin d'avoir quelques exemples supplémentaires.
Acclamations,
Stan
Re : Importation XML directement dans des tables de donnéesStan, c'est un exemple vraiment cool d'utilisation de PARSE XML.C'est documenté quelque part ?Je n'ai pas trouvé grand-chose dans l'aide en ligne de JMP 11 ou dans les manuels de script.
Re : Importation XML directement dans des tables de donnéesSalut Stan,
ça marche bien, merci beaucoup ! Je vais jouer avec pour bien comprendre le fonctionnement de la JSL.
Au cas où quelqu'un de JMP lirait ceci : l'option d'importer un fichier de données XML bien formé directement dans une table de données (sans connaître la structure ou la profondeur des données) serait un ajout utile. Est-ce faisable ou possible ?
Merci,
Matthieu.
Re : Importation XML directement dans des tables de donnéesSalut Matt,
JMP ne dispose actuellement d'aucun moyen direct d'importer des fichiers XML à l'aide de la boîte de dialogue d'ouverture de fichier.
Cependant, vous pouvez utiliser le JSL pour accomplir cette tâche.
Voir ci-dessous un exemple d'une façon de procéder.
Peut-être que quelqu'un d'autre peut simplifier le script pour qu'il soit plus concis.
Acclamations,
Stan
// assigne un texte xml
xmlTxtFile = "\[
]\"
;
// Analyser le XML
Analyser XML ( xmlTxtFile ,
// Crée un nouveau tableau
Sur l'élément ( "Examen final" ,
Balise de début (
dt = Nouveau tableau ( "Table à gaufrettes" ,
// Créer de nouvelles colonnes
Nouvelle colonne ( "Identifiant du lot" , Personnage ) ,
Nouvelle colonne ( "Type de testeur" , Personnage ) ,
Nouvelle colonne ( "Die ID" , Numérique ) ,
Nouvelle colonne ( "Meurs X" , Numérique ) ,
Nouvelle colonne ( "Meurs Y" , Numérique ) ,
Nouvelle colonne ( "Nom du test" , Personnage ) ,
Nouvelle colonne ( "Nom de l'unité" , Personnage ) ,
Nouvelle colonne ( "Nom de la broche" , Personnage ) ,
Nouvelle colonne ( "Résultat de la broche" , Numérique ) ,
) ;
rangée = 1 ;
) // Fin de la balise de début, test final sur l'élément
) ,
// Récupère l'élément suivant
Sur l'élément ( "Parcelle" ,
Balise de début (
Si ( rangée > 0 , dt << Ajouter des lignes ( 1 )) ;
colonne ( dt , "Identifiant du lot" )[ rangée ()] = Attribut XML ( "id_lot" ) ;
colonne ( dt , "Type de testeur" )[ rangée ()] = Attribut XML ( "type_testeur" ) ;
) ,
Balise de fin ()
) ,
Sur l'élément ( "Mourir" ,
Balise de début (
colonne ( dt , "Die ID" )[ rangée ()] = Numéro ( Attribut XML ( "id_die" )) ;
colonne ( dt , "Meurs X" )[ rangée ()] = Numéro ( Attribut XML ( "die_x" )) ;
colonne ( dt , "Meurs Y" )[ rangée ()] = Numéro ( Attribut XML ( "die_y" )) ;
)
) ,
Sur l'élément ( "Test" ,
Balise de début (
colonne ( dt , "Nom du test" )[ rangée ()] = Attribut XML ( "nom du test" ) ;
colonne ( dt , "Nom de l'unité" )[ rangée ()] = Attribut XML ( "unité" ) ;
)
) ,
Sur l'élément ( "Épingle" ,
Balise de début (
colonne ( dt , "Nom de la broche" )[ rangée ()] = Attribut XML ( "nom_broche" ) ;
colonne ( dt , "Résultat de la broche" )[ rangée ()] = Numéro ( Attribut XML ( "résultat" )) ;
) ,
Balise de fin (
Si ( rangée > 0 , dt << Ajouter des lignes ( 1 )) ;
)
)
) ;
// supprime la ligne supplémentaire
nr = NRow ( dt ) ;
dt << Aller à la ligne ( nr ) ;
dt << Soyez sélectionné () ;
dt << Supprimer des lignes ;
// Remplir les valeurs de ligne manquantes
Pour chaque ligne (
cr = rangée () ;
Si ( cr != 1 ,
Si ( : ID de lot == "" , : ID de lot = Décalage ( : ID de lot , 1 ) , : ID de lot = : ID de lot ) ;
Si ( : Type de testeur == "" , : Type de testeur = Décalage ( : Type de testeur , 1 ) , : Type de testeur = : Type de testeur ) ;
Si ( Est manquant ( : ID de matrice ) == 1 , : ID de matrice = Décalage ( : ID de matrice , 1 ) , : ID de matrice = : ID de matrice ) ;
Si ( Est manquant ( : Mourir X ) == 1 , : Mourir X = Décalage ( : Mourir X , 1 ) , : Mourir X = : Mourir X ) ;
Si ( Est manquant ( : Mourir Y ) == 1 , : Mourir Y = Décalage ( : Mourir Y , 1 ) , : Mourir Y = : Mourir Y ) ;
Si ( : Nom du test == "" , : Nom du test = Décalage ( : Nom du test , 1 ) , : Nom du test = : Nom du test ) ;
Si ( : Nom de l'unité == "" , : Nom de l'unité = Décalage ( : Nom de l'unité , 1 ) , : Nom de l'unité = : Nom de l'unité ) ;
) ;
) ;