將XML直接導入數據表<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我想將數據集從(格式良好的)XML 直接導入到數據表中。 這是 Excel 可以做到的事情,所以我確信 JMP 也可以! XML 和最終數據表如下例所示;有一組測試,其中包含與芯片相關的各個引腳的結果,整個批次的所有部分,以及相關屬性,例如測試儀或x,y 坐標(它基於半導體測試數據,正如您可能已經猜到的! ) 。 數據集可能會很長。
我知道有一個 Parse XML JSL 函數,但我不知道如何在這種情況下實現它。 如有任何建議,不勝感激!
謝謝,馬修。
<最終測試>
<批次lot_id =“BLAH”tester_type =“J750”>
<模具die_id =“1”die_x =“1”die_y =“1”>
<測試 test_name="TEST1" 單元="A">
<測試 test_name="TEST2" 單元="A">
<模具die_id =“2”die_x =“3”die_y =“4”>
<測試 test_name="TEST1" 單元="A">
<測試 test_name="TEST2" 單元="A">
| 批次編號 | 測試者類型 | 模具編號 | 模具_x | 死_y | 測試名稱 | 單元 | 引腳名稱 | 結果 |
| 布拉赫 | J750 | 1 | 1 | 1 | 測試1 | A | ABC | 1234 |
| 布拉赫 | J750 | 1 | 1 | 1 | 測試1 | A | DEF | 2345 |
| 布拉赫 | J750 | 1 | 1 | 1 | 測試2 | A | XCV | 第414章 |
| 布拉赫 | J750 | 1 | 1 | 1 | 測試2 | A | VBN | 第1351章 |
| 布拉赫 | J750 | 2 | 3 | 4 | 測試1 | A | ABC | 5433 |
| 布拉赫 | J750 | 2 | 3 | 4 | 測試1 | A | DEF | 4321 |
| 布拉赫 | J750 | 2 | 3 | 4 | 測試2 | A | XCV | 6856 |
| 布拉赫 | J750 | 2 | 3 | 4 | 測試2 | A | VBN | 5345 |
回复:將 XML 直接導入數據表嗨,我寫這篇文章時遇到錯誤
解析XML ( Qas文件,
在元素上( “指標組” ,
開始標籤(
dt =新表( “測試 JMP 表” ) ;
dt <<新專欄( “N” ,數字) ;
dt <<新專欄( “圖形文件” ,特點) ;
dt <<新專欄( “描述” ,特點) ;
)) ;
排= 1 ;
在元素上( “N” ,
開始標籤(
如果(排> 0 , dt <<添加行( 1 )) ;
柱子( dt , “N” )[排()] = XML屬性( “N” ) ;
)) ,
結束標籤()
) ;
回复:將 XML 直接導入數據表對於那些對 XML 感興趣的人(最近它似乎越來越多),我可以報告說,JMP 15 中正在積極開發 XML 導入嚮導。 它允許點擊選擇以確保 JMP 理解 XML 的正確格式。 JMP 15 將於 2019 年秋季發貨。
回复:將 XML 直接導入數據表對於 XML 和其他文本文件,Load Text File() 是 Open() 的替代方法。回复:將 XML 直接導入數據表很好的例子。我發現這比腳本指南或腳本索引更容易理解。謝謝!
回复:將 XML 直接導入數據表嗨斯坦,
我沒有意識到您是 JMP 人員,但現在我在您的名字下面看到了 JMP 小圖標,這就解釋了這一點:)再次感謝您的幫助,我確實會建議將此作為未來的增強功能。
問候,
馬修。
回复:將 XML 直接導入數據表馬特,
偉大的!我很高興您發現它很有用。我們的支持團隊非常出色,隨時準備幫助客戶解決您可能遇到的任何問題或意見。
將功能添加到 JMP 未來版本的最佳方法是將請求直接提交至support@jmp.com 。
乾杯,
斯坦
回复:將 XML 直接導入數據表嗨彼得,
謝謝。我很高興您發現這個示例很有幫助。我使用腳本索引中的示例應用了我的實現。我在腳本索引中搜索“XML”,它返回了幾個結果。
我將提交請求以更新文檔以提供一些其他示例。
乾杯,
斯坦
回复:將 XML 直接導入數據表Stan,這是使用 PARSE XML 的一個非常酷的示例。它記錄在某處嗎?在 JMP 11 在線幫助或腳本書籍中找不到太多內容。
回复:將 XML 直接導入數據表嗨斯坦,
效果很好,非常感謝! 我將使用它來充分理解 JSL 的工作原理。
如果 JMP 的任何人正在閱讀本文:將格式良好的 XML 數據文件直接導入到數據表中(無需了解數據的結構或深度)的選項將是一個有用的補充。 這是否可行或可能?
謝謝,
馬修。
回复:將 XML 直接導入數據表嗨馬特,
JMP 目前沒有使用“文件打開”對話框導入 XML 文件的直接方法。
但是,您可以使用 JSL 來完成此任務。
請參閱下面的示例,了解執行此操作的一種方法。
也許其他人可以簡化腳本以使其更加簡潔。
乾杯,
斯坦
// 指定 xml 文本
xml文本文件= “\[
<最終測試>
<批次lot_id =“BLAH”tester_type =“J750”>
<模具die_id =“1”die_x =“1”die_y =“1”>
<測試 test_name="TEST1" 單元="A">
<測試 test_name="TEST2" 單元="A">
<模具die_id =“2”die_x =“3”die_y =“4”>
<測試 test_name="TEST1" 單元="A">
<測試 test_name="TEST2" 單元="A">
]\”
;
// 解析XML
解析XML ( xml文本文件,
// 創建一個新表
在元素上( “最後一個考試” ,
開始標籤(
dt =新表( 「晶圓台」 ,
// 創建新列
新專欄( “批次 ID” ,特點) ,
新專欄( “測試儀類型” ,特點) ,
新專欄( “死亡ID” ,數字) ,
新專欄( 《死X》 ,數字) ,
新專欄( “死Y” ,數字) ,
新專欄( “測試名稱” ,特點) ,
新專欄( 「單位名稱」 ,特點) ,
新專欄( “引腳名稱” ,特點) ,
新專欄( “固定結果” ,數字) ,
) ;
排= 1 ;
) // 結束開始標籤,元素上的 FinalTest
) ,
// 獲取下一個元素
在元素上( “很多” ,
開始標籤(
如果(排> 0 , dt <<添加行( 1 )) ;
柱子( dt , “批次 ID” )[排()] = XML屬性( “批次 ID” ) ;
柱子( dt , “測試儀類型” )[排()] = XML屬性( “測試儀類型” ) ;
) ,
結束標籤()
) ,
在元素上( “死” ,
開始標籤(
柱子( dt , “死亡ID” )[排()] =數量( XML屬性( “死_id” )) ;
柱子( dt , 《死X》 )[排()] =數量( XML屬性( “死_x” )) ;
柱子( dt , “死Y” )[排()] =數量( XML屬性( “死吧” )) ;
)
) ,
在元素上( “測試” ,
開始標籤(
柱子( dt , “測試名稱” )[排()] = XML屬性( “測試名稱” ) ;
柱子( dt , 「單位名稱」 )[排()] = XML屬性( “單元” ) ;
)
) ,
在元素上( “別針” ,
開始標籤(
柱子( dt , “引腳名稱” )[排()] = XML屬性( “pin_name” ) ;
柱子( dt , “固定結果” )[排()] =數量( XML屬性( “結果” )) ;
) ,
結束標籤(
如果(排> 0 , dt <<添加行( 1 )) ;
)
)
) ;
//刪除多餘的行
號=行( dt ) ;
dt <<轉到行(號) ;
dt <<被選中() ;
dt <<刪除行;
// 填充缺失的行值
對於每一行(
鉻=排() ;
如果(鉻!= 1 ,
如果( :批次號== ”” , :批次號=落後( :批次號, 1 ) , :批次號= :批次號) ;
如果( :測試儀類型== ”” , :測試儀類型=落後( :測試儀類型, 1 ) , :測試儀類型= :測試儀類型) ;
如果(不見了( :模具ID ) == 1 , :模具ID =落後( :模具ID , 1 ) , :模具ID = :模具ID ) ;
如果(不見了( :模具X ) == 1 ,:模具X =落後( :模具X , 1 ) , :模具X = :模具X ) ;
如果(不見了( :模具Y ) == 1 , :模具Y =落後( :模具Y , 1 ) , :模具Y = :模具Y ) ;
如果( :測試名稱== ”” , :測試名稱=落後( :測試名稱, 1 ) , :測試名稱= :測試名稱) ;
如果( :單位名稱== ”” , :單位名稱=落後( :單位名稱, 1 ) , :單位名稱= :單位名稱) ;
) ;
) ;