OIC XPath: Búsqueda en Nodos Repetitivos con Condición

Una tarea muy común en OIC es buscar un valor específico dentro de un elemento que se repite (un bucle o una lista) basándose en el valor de otro elemento en el mismo nivel.

Ejemplo

Dado el siguiente XML de ejemplo, queremos obtener el VoucherRefnumValue donde el Xid del VoucherRefnumQualifierGid es igual a "BUSINESS UNIT".


<Voucher>
    <VoucherRefnum>
        <VoucherRefnumQualifierGid>
            <Gid>	
                <Xid>BUSINESS UNI</Xid>
            </Gid>
        </VoucherRefnumQualifierGid>
        <VoucherRefnumValue>ValorATomar</VoucherRefnumValue>
    </VoucherRefnum>
    <VoucherRefnum>
        <VoucherRefnumQualifierGid>
            <Gid>
                <Xid>string2</Xid>
            </Gid>
        </VoucherRefnumQualifierGid>
        <VoucherRefnumValue>ValorATomar2</VoucherRefnumValue>
    </VoucherRefnum>
</Voucher>
    

Expresión XPath

La siguiente expresión XPath logrará esto:


$_Each_Element/otm:GLogXMLElement/otm:Voucher/otm:VoucherRefnum[(otm:VoucherRefnumQualifierGid/otm:Gid/otm:Xid = "BUSINESS UNIT")]/otm:VoucherRefnumValue
    

Esto devolverá el valor ValorATomar.