OSB 组件-assign

2017-11-24  本文已影响0人  阿三君

assign是osb里最常用的组件,用来对变量进行赋值。假设有以下一段xml

<book> 
  <name>java编程思想</name>  
  <author> 
    <username>jianfeng</username>  
    <email>jianfeng.zheng@definesys.com</email> 
  </author> 
</book>

现需获取name和author标签中对email字段

assign 需要提供两个参数,如图


Expression:xml片段或者xpath表达式
variable:变量名称(不带$符号)

获取 name:
Expression:$P_XML/name/text()
获取email:
Expression:$P_XML/author/email/text()
text()表示获取文本类型数据
$P_XML表达存储xml片段变量
新建一个assign组件,写好xpath表达式,可以点击Test进行测试


点击Execute查看执行结果

如果把text()去掉是什么结果?


是一段xml片段
<book xmlns="http://definesys.com"> 
  <name>java编程思想</name>  
  <author> 
    <username>jianfeng</username>  
    <email>jianfeng.zheng@definesys.com</email> 
  </author> 
</book>

这时候如果还是使用$P_XML/name/text()是无法获取数据的



因为缺少命名空间,需要在Expression界面增加命名空间

Prefix:命名空间前缀可以自定义
URI:命名空间路径,即上面xmlns内容
将表达式修改为
$P_XML/df:name/text()

获取email表达式变更为

$P_XML/df:author/df:email/text()

author和email都要加上命名空间前缀,不然还是无法获取数据。

上一篇 下一篇

猜你喜欢

热点阅读