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 文档。