OSB 组件-assign

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片段

  • 给上面xml片段加上命名空间,加上命名空间后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都要加上命名空间前缀,不然还是无法获取数据。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,308评论 19 139
  • FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1...
    年轻小伙程序员阅读 8,184评论 0 5
  • 良好的 java、C/C++ 编程能力,熟练掌握android平台上app性能优化的工具和方法,同时有IOS开发经...
    零宽度接合阅读 2,540评论 0 0
  • 寂寥的四合院多久都没人来路人都会忽略它只有我在远方想念它 年少的我啊很早就离了家那时没有多少牵挂只想着离开家离开整...
    朱迪阅读 1,716评论 0 1
  • 在我们努力奋斗的时候,有些人因为我们的选择而增加了额外的负担,没错,那是我们的家人,还有我们最好的朋友。不仅...
    善行者大正阅读 4,813评论 0 6