Das XML-Format (Extensible Markup Language) wird im Internet häufig verwendet. XML-basierte Sprachen sind für viele Tools wie Microsoft Office, OpenOffice, iWork und Google Earth zum Standard geworden. Daher überrascht es nicht, wenn JMP-Benutzer auf XML-basierte Daten stoßen, die folgendermaßen aussehen:

JSL verfügt über eine Funktion namens "Parse XML", um den Import von XML-Daten zu vereinfachen. Im obigen XML-Beispiel ist ONSALE ein Starttag und / ONSALE ist ein Endtag. In ONSALE gibt es zwei Paare von ITEM-Tags, die jeweils ein Paar von NAME-Tags und PRICE-Tags enthalten. Mit "Parse XML" können Sie nach bestimmten Tags suchen und Maßnahmen ergreifen. Darüber hinaus können Sie das Timing der Aktion an das Start-Tag oder das End-Tag oder an beides binden. Die folgende JSL verwendet "Parse XML", um nützliche Informationen aus dem XML-Beispiel zu erhalten.
xml_file = load text file("onsaleItems.xml");XML analysieren (
xml_file,
OnElement (
"IM ANGEBOT",
Starttag (drucken ("Folgende Artikel werden zum Verkauf angeboten")),
)
Auf Element (
"ARTIKEL",
Endtag (
message = Artikelname || "für" || item_price || " ein Pfund.";
Print (Nachricht);
)
)
Auf Element (
"NAME",
Endtag (item_name = XML Text ();),
)
Auf Element (
"PREIS",
Endtag (item_price = XML Text ();),
)
);
Ergebnis:
"Folgende Artikel stehen zum Verkauf"
"Banane für 0,59 pro Pfund."
"Tomate für 1,19 Pfund."
Das Buch JSL Companion: Anwendung der JMP-Skriptsprache enthält einen ausführlichen Abschnitt zum XML-Parsen und Importieren von XML-Daten in die JMP-Tabelle. Eine der Autoren, Theresa Utlaut, teilte "Sample Code and Data" mit mehreren Skripten zum XML-Parsing SAS Press Autor Webseite .
Ich habe kürzlich den XML-Parser für ein Mapping-bezogenes Add-In verwendet, das KML-Polygon-Importer , die Sie von JMP File Exchange herunterladen können (Download erfordert kostenloses SAS-Profil). KML steht für Keyhole Markup Language. Es wurde zu einem internationalen Standard des Open Geospatial Consortium und wird als Mapping-Tool immer beliebter. Da KML XML-basiert ist, konnte ich den XML-Parser verwenden, um die KML-Maps in JMP-Datentabellen zu importieren, die dann als JMP-Maps angezeigt werden können. Hier ist ein KML-Modell von Bloomington, Indiana, in JMP angezeigt werden. Jede Form ist ein Gebäude, das von oben betrachtet wird, und ist entsprechend seiner durchschnittlichen Höhe beschattet.

Xan Gregg schrieb:
Ihr XML hat das Blog-Kommentarsystem nicht überlebt. Sieht aus wie in der Nähe. Sie können zum XML-Attr () - Beispiel in Help> Scripting Index zurückkehren und Schritt für Schritt ändern, um zu Ihrer Anwendung zu gelangen. Wenn das nicht hilft, versuchen Sie es mit JMP-Community-Diskussionsforum , die eingebetteten Code besser aufnehmen können.
Cristian Ureña Hdz schrieb:
Hallo, wie kann ich die Attribute "Name" und "Station" in die Spalten L1 und L2, die ich im Code erstellt habe, parsen? Ich habe die Tags "string" und "oncomplete" analysiert ... aber nicht die Attribute.
Siehe Abschnitt der XML-Datei und des JSL-Codes.
XML-Teil:
ProzessinhaltProduktwirdPRETEST FLASH
JSL-Code:
XML analysieren (file_contents,
OnElement ("Prozesssteuerung",
Starttag (
dt = Neue Tabelle ("ProcessMap",
Neue Spalte ("L1", Zeichen),
Neue Spalte ("L2", Zeichen),
Neue Spalte ("L3", Zeichen),
Neue Spalte ("Skript", Zeichen),
); // Ende der neuen Tabelle
row = 1;)) // Ende Starttag, Prozesssteuerung OnElement
OnElement ("state", Starttag (if (Zeile> 0, dt << Zeilen hinzufügen (1));), Endtag (Zeile ++;)),
// OnElement ("state", Starttag (if (Zeile> 0, dt << Zeilen hinzufügen (1), Spalte (dt, "L2") [Row ()) = Parse (XML Attr ("Name")) )), Endtag (Zeile ++;)),
// OnElement ("Station", Endtag (Spalte (dt, "L1") [Row ()) = XMLDecode (XML-Text ()))),
// OnElement ("state", Starttag (Spalte (dt, "L2") [Row ()) = XML-Attr ("Name"))),
// OnElement ("Name", Endtag (Spalte (dt, "L2") [Row ()] = XML-Text ())),
OnElement ("oncomplete", Endtag (Spalte (dt, "L3") [Row ()) = XML-Decode (XML-Text ()))),
OnElement ("script", Endtag (Spalte (dt, "Script") [Row ()] = XML-Text ()))
);