使用JSL XML解析器導入KML地圖形狀XML(可擴展標記語言)格式在Internet上廣泛使用,基於XML的語言已成為許多工具的默認語言,例如Microsoft Office,OpenOffice,iWork和Google Earth。因此,當JMP用戶遇到一些基於XML的數據時,這並不奇怪:

JSL有一個名為“Parse XML”的函數,可以更輕鬆地導入XML數據。在上面的XML示例中,ONSALE是開始標記,而/ ONSALE是結束標記。ONSALE中有兩對ITEM標記,每個標記包含一對NAME標記和PRICE標記。使用“Parse XML”,您可以查找某些標記並採取措施。此外,您可以將操作的時間與開始標記或結束標記或兩者聯繫起來。下面的JSL使用“Parse XML”從XML示例中獲取有用的信息。
xml_file = load text file("onsaleItems.xml");解析XML(
XML_FILE,
OnElement(
“Onsale的”,
開始標記(打印(“以下項目正在銷售中”)),
)
元素(
“項目”,
結束標記(
message = item_name || “for”|| item_price || “ 一磅。”;
打印(消息);
)
)
元素(
“名稱”,
結束標記(item_name = XML Text();),
)
元素(
“價錢”,
結束標記(item_price = XML Text();),
)
);
結果:
“以下項目正在出售”
“香蕉每磅0.59英鎊。”
“番茄每磅1.19英鎊。”
這本書 JSL Companion:JMP腳本語言的應用有一個關於XML解析和將XML數據導入JMP表的深入部分。其中一位作者Theresa Utlaut分享了“示例代碼和數據”,其中包括幾個關於XML解析的腳本 SAS新聞作者網頁 。
我最近使用XML解析器來創建與映射相關的插件 KML多邊形進口商 ,您可以從JMP文件交換機下載(下載需要免費的SAS配置文件)。KML代表Keyhole標記語言。它成為開放地理空間聯盟的國際標準,並且作為地圖工具越來越受歡迎。因為KML是基於XML的,所以我能夠使用XML解析器將KML映射導入JMP數據表,然後可以將其顯示為JMP映射。這裡有一個印第安納州布盧明頓的KML模型,在JMP中顯示。每個形狀都是從上方看的建築物,並根據其平均高度進行著色。

Xan Gregg寫道:您的XML無法在博客評論中存活下來...... Xan Gregg 中寫道:
您的XML在博客評論系統中無法生存。但是看起來你很親密。您可以返回幫助>腳本索引中的XML Attr()示例,並一次修改為一個步驟以進入您的應用程序。如果這沒有幫助,試試吧 JMP社區討論論壇 ,可以更好地適應嵌入式代碼。
CristianUreña Hdz寫道:嗨,我怎麼解析attrib ... CristianUreña Hdz 中寫道:
嗨,我如何將屬性“name”和“station”解析為我在代碼中創建的列L1和L2?我得解析“string”和“oncomplete”標籤...... 但沒有屬性。
查看XML文件和JSL代碼的一部分。
XML部分:
processcontentproductrebootPRETEST FLASH
JSL代碼:
解析XML(file_contents,
OnElement(“工藝控制”,
開始標記(
dt =新表(“ProcessMap”,
新欄目(“L1”,字符),
新欄目(“L2”,字符),
新列(“L3”,字符),
新欄目(“劇本”,角色),
); //結束新表
row = 1;)),// end Start Tag,processcontrol OnElement
OnElement(“state”,Start Tag(if(row> 0,dt << Add Rows(1));),End Tag(row ++;)),
// OnElement(“state”,Start Tag(if(row> 0,dt << Add Rows(1),column(dt,“L2”)[Row()] = Parse(XML Attr(“name”)) )),結束標記(行++;)),
// OnElement(“station”,End Tag(列(dt,“L1”)[Row()] = XMLDecode(XML text()))),
// OnElement(“state”,Start Tag(列(dt,“L2”)[Row()] = XML Attr(“name”))),
// OnElement(“name”,End Tag(列(dt,“L2”)[Row()] = XML text())),
OnElement(“oncomplete”,結束標記(列(dt,“L3”)[Row()] = XML解碼(XML text()))),
OnElement(“script”,End Tag(列(dt,“Script”)[Row()] = XML text()))
);