JSL XMLパーサーを使用してKMLマップ図形をインポートするXML(Extensible Markup Language)形式はインターネットで広く使用されています。XMLベースの言語は、Microsoft Office、OpenOffice、iWork、Google Earthなどの多くのツールでデフォルトになっています。したがって、JMPユーザーが次のようなXMLベースのデータに遭遇しても、それは驚くことではありません。

JSLには、XMLデータのインポートを容易にするための「Parse XML」という機能があります。上記のXMLの例では、ONSALEは開始タグ、/ ONSALEは終了タグです。ONSALEには2組のITEMタグがあり、それぞれにNAMEタグとPRICEタグのペアが含まれています。「XMLの解析」を使用すると、特定のタグを探してアクションを実行できます。さらに、アクションのタイミングを開始タグまたは終了タグ、あるいはその両方に結び付けることができます。以下のJSLはXMLサンプルから有用な情報を取得するために "Parse XML"を使用します。
xml_file = load text file("onsaleItems.xml");XMLを解析(
xml_file、
OnElement(
"発売中"、
開始タグ(印刷(「以下の商品は販売中」))、
、
要素上(
"項目"、
終了タグ(
message = item_name || "for" || item_price || " 一ポンド。";
印刷(メッセージ)。
)
、
要素上(
"名"、
終了タグ(item_name = XML Text();)、
、
要素上(
"価格"、
終了タグ(item_price = XML Text();)、
)
;
結果:
「以下の商品が販売中です」
"0.59ポンドのバナナ。"
「1.19ポンドのトマト」
その本 JSLコンパニオン:JMPスクリプト言語の応用 XMLの構文解析とJMP表へのXMLデータのインポートに関する詳細なセクションがあります。著者の一人であるTheresa Utlautは、"Sample Code and Data"を、彼女のXML構文解析に関するいくつかのスクリプトを含めて共有しました。 SAS Pressの作者のWebページ 。
最近、マッピング関連のアドインとしてXMLパーサーを使用しました。 KMLポリゴンインポーター JMP File Exchangeからダウンロードできます(ダウンロードには無料のSASプロファイルが必要です)。KMLはKeyhole Markup Languageの略です。これはOpen Geospatial Consortiumの国際標準となり、マッピングツールとしてますます普及しています。KMLはXMLベースであるため、XMLパーサーを使用してKMLマップをJMPデータテーブルにインポートすることができました。これをJMPマップとして表示できます。がここにありますインディアナ州ブルーミントンのKMLモデル JMPで表示されています。それぞれの形は上から見た建物であり、その平均高度に従って陰影が付けられています。

Xan Greggは、次のように書いています。あなたのXMLはブログのコメントを乗り越えられなかった... Xan Gregg 書きました:
あなたのXMLはブログのコメントシステムを乗り越えられませんでした。あなたは親しいです、しかし。Help> Scripting IndexのXML Attr()の例に戻り、一度に1ステップずつ変更してアプリケーションにアクセスします。それでも解決しない場合は、 JMPコミュニティディスカッションフォーラムこれは、埋め込みコードをより適切に収容できます。
CristianUreÃa a Hdzは書きました:こんにちは、私はどうやって属性を解析できますか...クリスチャンウレアHdz 書きました:
こんにちは、どのように私はコードで作成した列L1とL2に属性 "name"と "station"を解析することができますか?"string"と "oncomplete"タグを解析しました。しかし属性はありません。
XMLファイルとJSLコードの一部を参照してください。
XML部分
processcontentproductrebootPRETEST FLASH
JSLコード:
XMLを解析する(file_contents、
OnElement( "processcontrol"、
開始タグ(
dt =新しいテーブル( "ProcessMap"、
新しい列( "L1"、文字)
新しい列( "L2"、文字)
新しい列( "L3"、文字)、
新しい列( "スクリプト"、文字)、
; //新しいテーブル
row = 1;))、//開始タグの終了、processcontrol OnElement
OnElement( "state"、開始タグ(if(row> 0、dt << Add Rows(1));)、終了タグ(row ++;))、
// OnElement( "state"、開始タグ(if(row> 0、dt << Add Rows(1)、column(dt、"L2"))[Row()] =解析(XML Attr( "name")) ))、終了タグ(row ++;))、
// OnElement( "station"、終了タグ(column(dt、"L1")[Row()] = XMLDecode(XML text())))、
// OnElement( "状態"、開始タグ(列(dt、"L2")[行()] = XML Attr( "名前")))、
// OnElement( "name"、終了タグ(column(dt、"L2")[Row()] = XMLテキスト()))、
OnElement( "oncomplete"、終了タグ(列(dt、"L3")[行()] = XMLデコード(XMLテキスト())))、
OnElement( "script"、終了タグ(column(dt、"Script")[Row()] = XMLテキスト()))
;