Le format XML (langage de balisage extensible) est largement utilisé sur Internet et les langages basés sur XML sont devenus la langue par défaut de nombreux outils, tels que Microsoft Office, OpenOffice, iWork et Google Earth. Il n’est donc pas surprenant que les utilisateurs de JMP rencontrent des données XML ressemblant à ceci:

JSL a une fonction appelée "Analyse XML" pour faciliter l'importation de données XML. Dans l'exemple XML ci-dessus, ONSALE est une balise de début et / ONSALE est une balise de fin. ONSALE contient deux paires de balises ITEM, chacune contenant une paire de balises NAME et de balises PRICE. En utilisant "Analyser XML", vous pouvez rechercher certaines balises et prendre des mesures. De plus, vous pouvez associer le moment de l'action à la balise de début ou de fin, ou aux deux. La JSL ci-dessous utilise "Analyse XML" pour obtenir les informations utiles à partir de l'exemple XML.
xml_file = load text file("onsaleItems.xml");Analyser XML (
xml_file,
OnElement (
"EN SOLDES",
Start Tag (print ("Les articles suivants sont en vente")),
),
Sur élément (
"ARTICLE",
Balise de fin (
message = nom_élément || "pour" || item_price || " une livre.";
imprimer (message);
)
),
Sur élément (
"PRÉNOM",
Balise de fin (item_name = XML Text ();),
),
Sur élément (
"PRIX",
Balise de fin (item_price = XML Text ();),
)
)
Résultat:
"Les articles suivants sont en vente"
"Banane pour 0,59 livre."
"Tomate pour 1,19 livre."
Le livre JSL Companion: Application du langage de script JMP contient une section détaillée sur l'analyse XML et l'importation de données XML dans une table JMP. Une des auteurs, Theresa Utlaut, a partagé "Sample Code and Data", y compris plusieurs scripts sur l'analyse XML sur elle. Page Web de l'auteur SAS Press .
J'ai récemment utilisé l'analyseur XML pour un complément lié au mappage, le Importateur de polygones KML , que vous pouvez télécharger à partir de l’échange de fichiers JMP (le téléchargement nécessite un profil SAS gratuit). KML signifie Keyhole Markup Language. Il est devenu une norme internationale de l’Open Geospatial Consortium et devient de plus en plus populaire en tant qu’outil de cartographie. Le format KML étant basé sur XML, j'ai pu utiliser l'analyseur XML pour importer les mappes KML dans des tables de données JMP, qui peuvent ensuite être affichées sous forme de mappes JMP. Voici une Modèle KML de Bloomington, Indiana, en cours d'affichage dans JMP. Chaque forme est un bâtiment vu de dessus et ombragé en fonction de son altitude moyenne.

Xan Gregg a écrit:
Votre code XML n'a pas survécu au système de commentaires du blog. On dirait que tu es proche, cependant. Vous pouvez revenir à l'exemple XML Attr () dans Aide> Index de script et le modifier étape par étape pour accéder à votre application. Si cela ne vous aide pas, essayez le Forum de discussion de la communauté JMP , qui peut mieux accueillir le code incorporé.
Cristian Ureña Hdz a écrit:
Bonjour, comment analyser les attributs "name" et "station" dans les colonnes L1 et L2 que j'ai créées dans le code? Je dois analyser les balises "string" et "oncomplete" ... mais pas les attributs.
Voir une partie du fichier XML et du code JSL.
Partie XML:
processcontentproductrebootPRETEST FLASH
Code JSL:
Analyser XML (contenu_fichier,
OnElement ("processcontrol",
Balise de départ (
dt = New Table ("ProcessMap",
Nouvelle colonne ("L1", caractère),
Nouvelle colonne ("L2", caractère),
Nouvelle colonne ("L3", caractère),
Nouvelle colonne ("Script", caractère),
) // end New Table
row = 1;)), // end Balise de début, processcontrol OnElement
OnElement ("state", balise de début (if (row> 0, dt << Add Rows (1)));), balise de fin (row ++;)),
// OnElement ("state", Balise de début (if (ligne> 0, dt << Ajouter des lignes (1), colonne (dt, "L2")) [Row ()] = Analyse (XML Attr ("nom")) )), End Tag (row ++;)),
// OnElement ("station", balise de fin (column (dt, "L1") [Row ()] = XMLDecode (XML text ()))),
// OnElement ("state", balise de début (column (dt, "L2") [Row ()] = XML Attr ("name"))),
// OnElement ("name", balise de fin (column (dt, "L2") [Row ()] = XML text ())),
OnElement ("oncomplete", balise de fin (column (dt, "L3") [Row ()] = décodage XML (XML text ()))),
OnElement ("script", balise de fin (column (dt, "Script")) [Row ()] = XML text ()))
)