将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 ) , :单位名称= :单位名称) ;
) ;
) ;