使用xpath表达式OSB获取父节点的所有子元素

时间:2015-06-18 07:44:45

标签: xpath osb

我正在使用OSB并且有一个包含父节点和子节点的长XML。

这是我的XML

<XML>
<RefreshLaborApproval2RSP   xmlns:XPathFunction="http://www.oracle.com/XSL/Transform/java/mol.prc.labourapproval.XPathFunction" xmlns:tsd="http://namespaces.softwareag.com/tamino/TaminoSchemaDefinition">
<ERRORCODE>
<VALUE>dfdfdf</VALUE>
</ERRORCODE>
<LABORRECORDS>
<LABORNAT>
<VALUE>569</VALUE>
</LABORNAT>
</LABORRECORDS>
<LABORRECORDS>
<LABORNAT>
<VALUE>218</VALUE>
</LABORNAT>
</LABORRECORDS>
</RefreshLaborApproval2RSP>
</XML>

当我使用表达式XML/*时,它为我提供了从<RefreshLaborApproval2RSP></RefreshLaborApproval2RSP>的整个XML,并在一个名为xmlparentNode的变量中保持相同。

然后当我使用$xmlparentNode/LABORRECORDS时,我只获得istLABORRECORDS子元素,如下所示。

<LABORRECORDS>
<LABORNAT>
<VALUE>569</VALUE>
</LABORNAT>
</LABORRECORDS>

但我想要所有<LABORRECORDS>子元素。

2 个答案:

答案 0 :(得分:0)

我不知道你想要实现什么,但你可以:

  1. 分配变量xmlparentNode,

  2. 使用For Each例如:

    a)每个变量:Laborrecords
    b)XPath:./ LABORRECORDS
    c)在Variable中:xmlparentNode
    d)指数变量:指数
    e)计数变量:计数

  3. 然后在For Each中分配表达式:$ Laborrecords in variable to get first value,then second。

  4. 做一些插页或其中的东西。

  5. 我不知道这是否能解决您的问题。

答案 1 :(得分:-1)

您正在使用的XML表达式是正确的。

如果XML元素很长并且您使用变量窗口(在调试期间)来查看返回的元素,则可能存在数据丢失的可能性。