El formato XML (Extensible Markup Language) se usa ampliamente en Internet, y los lenguajes basados en XML se han convertido en el predeterminado para muchas herramientas, como Microsoft Office, OpenOffice, iWork y Google Earth. Por lo tanto, no es sorprendente que los usuarios de JMP encuentren algunos datos basados en XML que se parecen a esto:

JSL tiene una función llamada "Parse XML" para facilitar la importación de datos XML. En el ejemplo XML anterior, ONSALE es una etiqueta de inicio y / ONSALE es una etiqueta de finalización. Hay dos pares de etiquetas ITEM dentro de ONSALE, cada una contiene un par de etiquetas NAME y etiquetas PRICE. Usando "Parse XML", puedes buscar ciertas etiquetas y actuar. Además, puede vincular el tiempo de la acción a la etiqueta de inicio o la etiqueta de final, o ambos. La JSL a continuación utiliza "Parse XML" para obtener la información útil de la muestra XML.
xml_file = load text file("onsaleItems.xml");Parse XML (
xml_file,
OnElement (
"EN VENTA",
Etiqueta de inicio (imprimir ("Los siguientes artículos están a la venta")),
)
En el elemento (
"ÍT",
Etiqueta final
mensaje = item_name || "para" || item_price || " una libra.";
imprimir (mensaje);
)
)
En el elemento (
"NOMBRE",
Etiqueta final (item_name = XML Text ();),
)
En el elemento (
"PRECIO",
Etiqueta de finalización (item_price = XML Text ();),
)
);
Resultado:
"Los siguientes artículos están a la venta"
"Plátano por 0.59 la libra".
"Tomate por 1.19 la libra".
El libro JSL Companion: Aplicación del lenguaje de scripting JMP tiene una sección detallada sobre análisis XML e importación de datos XML a la tabla JMP. Una de las autoras, Theresa Utlaut, compartió "Código de muestra y datos", incluidos varios scripts sobre el análisis de XML en ella. Página web del autor de SAS Press .
Recientemente he usado el analizador XML para un complemento relacionado con la asignación, el Importador de polígonos KML , que puede descargar de JMP File Exchange (la descarga requiere un perfil SAS gratuito). KML significa Keyhole Markup Language. Se convirtió en un estándar internacional del Open Geospatial Consortium, y se está volviendo cada vez más popular como herramienta de mapeo. Como KML está basado en XML, pude usar el analizador XML para importar los mapas KML en las tablas de datos JMP, que luego se pueden mostrar como mapas JMP. Aquí hay un Modelo KML de Bloomington, Indiana, se muestra en JMP. Cada forma es un edificio visto desde arriba y está sombreado de acuerdo con su altitud promedio.

Xan Gregg escribió:
Tu XML no sobrevivió al sistema de comentarios del blog. Aunque parece que estás cerca. Puede volver al ejemplo de XML Attr () en Ayuda> Índice de secuencias de comandos y modificarlo paso a paso para llegar a su aplicación. Si eso no ayuda, prueba el Foro de discusión de la comunidad JMP , que puede acomodar mejor el código incorporado.
Cristian Ureà ± a Hdz escribió:
Hola, ¿cómo puedo analizar los atributos "nombre" y "estación" en las columnas L1 y L2 que he creado en el código? Tengo que analizar las etiquetas "cadena" y "incompleta" ... Pero no los atributos.
Ver parte del archivo XML y código JSL.
Parte XML:
procesocontentproductrebootPRETEST FLASH
Código JSL:
Parse XML (file_contents,
OnElement ("control de proceso",
Etiqueta de inicio
dt = Nueva tabla ("ProcessMap",
Nueva columna ("L1", carácter),
Nueva columna ("L2", carácter),
Nueva columna ("L3", carácter),
Nueva columna ("Script", carácter),
); // end New Table
row = 1;)), // end Start Tag, processcontrol OnElement
OnElement ("estado", Etiqueta de inicio (if (fila> 0, dt << Agregar filas (1));), Etiqueta de finalización (fila ++;)),
// OnElement ("estado", Etiqueta de inicio (si (fila> 0, dt << Añadir filas (1), columna (dt, "L2") [Fila ()] = Analizar (XML Attr ("nombre"))) )), Etiqueta final (fila ++;)),
// OnElement ("station", End Tag (column (dt, "L1") [Row ()] = XMLDecode (XML text ())))
// OnElement ("estado", etiqueta de inicio (columna (dt, "L2") [Fila ()] = XML Attr ("nombre"))),
// OnElement ("name", End Tag (column (dt, "L2") [Row ()] = XML text ())),
OnElement ("oncomplete", Etiqueta de finalización (columna (dt, "L3") [Fila ()] = Decodificación XML (texto XML ())))
OnElement ("script", etiqueta de finalización (columna (dt, "Script") [Fila ()] = texto XML ()))
);