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.