assign
是osb里最常用的組件始腾,用來對變量進行賦值裸违。假設有以下一段xml
<book>
<name>java編程思想</name>
<author>
<username>jianfeng</username>
<email>jianfeng.zheng@definesys.com</email>
</author>
</book>
現(xiàn)需獲取name
和author標簽中對email
字段
assign
需要提供兩個參數(shù)鞍匾,如圖
Expression:
xml片段或者xpath表達式variable:
變量名稱(不帶$符號)
獲取 name
:
Expression:
$P_XML/name/text()
獲取email
:
Expression:
$P_XML/author/email/text()
text()表示獲取文本類型數(shù)據(jù)
$P_XML表達存儲xml片段變量
新建一個assign組件瞳氓,寫好xpath表達式送粱,可以點擊Test
進行測試
點擊Execute
查看執(zhí)行結果
如果把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()
是無法獲取數(shù)據(jù)的
因為缺少命名空間萤皂,需要在Expression界面增加命名空間
Prefix:
命名空間前綴可以自定義URI:
命名空間路徑,即上面xmlns內容將表達式修改為
$P_XML/df:name/text()
獲取email表達式變更為
$P_XML/df:author/df:email/text()
author和email都要加上命名空間前綴匣椰,不然還是無法獲取數(shù)據(jù)裆熙。