BPEL - 操作 XML 数据
XPath 主要用于在 BPEL 流程中操作 XML。有一些有价值的 Xpath 函数可用于操作 XML。让我们看看下面的函数。
bpel:getVaribleData(varName, partName, xpathStr)
这可用于使用 XPath 表达式从变量中提取一组元素。
<bpel:copy>
<bpel:from>
<![CDATA[count(bpel:getVariableData(‘$Variable','$partName')/ns:return)]]>
</bpel:from>
<bpel:to variable = "itemNumber">
</bpel:to>
</bpel:copy>
bpel:getLinkStatus()
这可用于评估并返回布尔值,以表明特定链接是活动的还是非活动的。:getVariableProperty(string, string)
这在提取变量中的属性时很有用。:doXSLTTransform()
这可执行 XSLT 转换。string ()
这可用于从元素中提取文本内容,而不是使用 /text ()。string-length()
此函数用于计算字符串的长度。但 != 运算符似乎不适用于此函数的输出。因此,您可以使用 > 或 <,而使用 ! = 。布尔值
您可以使用 XPath 布尔函数分配布尔值。
<assign>
<!-- copy from boolean expression function to the variable -->
<copy>
<from expression = "true()"/>
<to variable = "output" part = "payload" query="/result/approved"/>
</copy>
</assign>
分配日期或时间
您可以分别使用 Oracle BPEL XPath 函数 getCurrentDate、getCurrentTime 或 getCurrentDateTime 分配日期或时间字段的当前值。
<!-- execute the XPath extension function getCurrentDate() -->
<assign>
<copy>
<from expression = "xpath20:getCurrentDate()"/>
<to variable = "output" part = "payload"
query = "/invoice/invoiceDate"/>
</copy>
</assign>
连接字符串
您可以先执行字符串操作,例如连接多个字符串,而不是将一个字符串变量(或变量部分或字段)的值复制到另一个字符串变量。
<assign>
<!-- copy from XPath expression to the variable -->
<copy>
<from expression = "concat('Hello ',
bpws:getVariableData('input', 'payload', '/p:name'))"/>
<to variable = "output" part = "payload" query = "/p:result/p:message"/>
</copy>
</assign>
分配字符串文字
您可以将字符串文字分配给 BPEL 中的变量。
<assign>
<!-- copy from string expression to the variable -->
<copy>
<from expression = "'GE'"/>
<to variable = "output" part = "payload" query = "/p:result/p:symbol"/>
</copy>
</assign>
分配数值
您可以在 XPath 表达式中分配数值。
<assign>
<!-- copy from integer expression to the variable -->
<copy>
<from expression = "100"/>
<to variable = "output" part = "payload" query = "/p:result/p:quantity"/>
</copy>
</assign>
注意 − 使用了一些 XSLT 函数来转换 XML 文档。

