tengo las siguientes rutas:¿Cuál es el equivalente XPath del operador Coalesce?
- /mi: empresa/ns1: Auditoría/ns1: Visita/ns1: customField10
- /mi: empresa/ns1: Auditoría/ns1: Visita/ns1: accountNumber
Deseo seleccionar ns1: customField10 si no está vacío; de lo contrario, deseo devolver ns1: accountNumber.
He intentado lo siguiente:
xml.SelectSingleNode(
"(/my:cobius/ns1:Audit/ns1:Visit/ns1:customField10 |
/my:cobius/ns1:Audit/ns1:Visit/ns1:accountNumber)", ns)
Pero siempre está volviendo accountNumber. Intenté cambiar el orden de customField10 y accountNumber, pero no me gustó. Todavía devuelve accountNumber.
¿Cómo puedo hacer el equivalente del operador de fusión en XPath?
Actualización:
Aquí está el código final:
xml.SelectSingleNode(
"(/my:company/ns1:Audit/ns1:Visit/ns1:customField10[normalize-space()] |
/my:company/ns1:Audit/ns1:Visit/ns1:accountNumber[not(normalize-space(../ns1:customField10))])", ns)
'¿Por qué no xml.SelectSingleNode()' para ambos nodos y una normal de '' ... si después de eso? – Tomalak
Puede ser más fácil responder a su pregunta si nos indicó cuál es el operador de fusión o, en cualquier caso, qué tecnología está pensando que tiene dicho operador. –
@Tomalak Por la misma razón, usaría un operador de coalescencia en SQL o C#. ¿Por qué no hacerlo en línea en lugar de asignar dos variables y hacer un chequeo? –