Pentaho中使用Get data from XML组件,通过XPath选择指定父节点的<price>子节点
解决Pentaho 'Get data from XML' 筛选特定节点下的问题
针对你要提取name属性为'1.1'的
1. 配置Root XPath缩小范围
在'Get data from XML'组件的Settings标签页里,找到Root XPath输入框,填入以下XPath表达式:
/bookstore/book[@name='1.1']
这个表达式的作用是:直接定位到name属性等于1.1的
2. 添加字段提取规则
切换到Fields标签页,点击添加按钮(一般是+号),配置字段信息:
- Name:自定义字段名,比如
book_price - XPath:直接填入
price(因为Root已经定位到目标节点,这里只需要取它的子节点 即可) - Type:根据你的需求选择,比如
Number(如果要做数值计算)或者String - Format:如果选Number的话,可以设置格式(比如
0.00)
3. 验证结果
配置完成后,点击组件的Preview按钮,就能看到提取到的三个price值:29.99、39.99、59.99,这就是你要的目标数据啦。
如果不想分两步,也可以直接用一个全局XPath来定位所有目标
/bookstore/book[@name='1.1']/price
然后Fields里的XPath设为.(表示当前节点),效果是完全一致的。
内容的提问来源于stack exchange,提问作者felix89
相关产品推荐
相关产品推荐

