XML Query Text
XML Query Text
Sección titulada «XML Query Text»Tipo: xml-query-text · Paquete: XML Activities v1.1.1 · Salida: string
Evalúa una expresión XPath sobre un XML y devuelve el primer valor de texto que coincide. Es la forma de extraer un dato de un documento XML: el número de una factura, el nombre de un cliente, un total.
Cómo funciona
Sección titulada «Cómo funciona»Aplica el xpath al xml y devuelve el texto de la primera coincidencia en el orden del documento:
- Un elemento: su texto. Si tiene hijos, el texto de todos sus descendientes, unido.
- Un atributo (
//cbc:PayableAmount/@currencyID): su valor. - Un valor calculado (
count(//cac:InvoiceLine),sum(//Total), una comparación): el número (2,1785000.5) otrue/false.
Si no hay ninguna coincidencia devuelve null (no falla) y deja un aviso en el log. Ver XPath en una cucharada.
Los prefijos de namespace del documento funcionan directamente (//cbc:ID) y el namespace por defecto se escribe con d: (/d:Invoice). Ver Namespaces.
El xml puede ser también un XML embebido como texto, por ejemplo el contenido de un CDATA que sacaste con otra consulta. Ver XML dentro de XML.
No modifica el xml de entrada.
Parámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
xml | string | — | El texto XML (de Read XML o de otra consulta). También un XML embebido, como el contenido de un CDATA. |
xpath | string | — | La expresión XPath, ej. //Factura/Numero, //cbc:ID o //Total/@moneda. |
Parámetros opcionales
Sección titulada «Parámetros opcionales»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
namespaces | Dictionary | — | Prefijos extra o que reemplazan a los del documento (prefijo → URI). Los declarados en el XML se registran solos. Desde la versión 1.1.0. |
defaultPrefix | string | "d" | Prefijo con que se escribe en el XPath el namespace por defecto del documento (xmlns="…"). Vacío equivale a "d". Desde la versión 1.1.0. |
Devuelve un string con el texto de la primera coincidencia, o null si el XPath no encuentra nada. Un elemento vacío (<Nota/>) devuelve "", no null: así distingues “no está” de “está vacío”.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
'xml' es obligatorio. / 'xpath' es obligatorio. | El parámetro quedó vacío o su expresión dio null (por ejemplo, una consulta anterior no encontró el CDATA). Comprueba la variable con If antes. |
La expresión XPath «…» no es válida: … | Sintaxis incorrecta en el XPath. |
El prefijo 'x:' no está declarado en el XML ni en 'namespaces'. Prefijos disponibles: …. | Usa uno de los prefijos de la lista o defínelo en namespaces. |
| Mensaje del analizador XML / DTD / tamaño / anidamiento | El xml no es válido o supera los límites. Ver Errores comunes del paquete. |
Que no haya coincidencias no es un error: revisa si la salida es null.
Ejemplo
Sección titulada «Ejemplo»Read XML path = ruta → output: xmlXML Query Text xml = xml xpath = "//Factura/Total" → output: totalIf condition = total == null └─ then: Throw message = "La factura no trae total"Log message = "Total de la factura: " + totalCon namespaces (factura UBL):
XML Query Text xml = factura xpath = "//cac:LegalMonetaryTotal/cbc:PayableAmount" → output: totalXML Query Text xml = factura xpath = "//cac:LegalMonetaryTotal/cbc:PayableAmount/@currencyID" → output: monedaXML Query Text xml = factura xpath = "count(//cac:InvoiceLine)" → output: numLineasActividades relacionadas
Sección titulada «Actividades relacionadas»- XML Query All — devolver todos los valores que coinciden.
- XML to Dictionary — convertir el documento completo.
- Read XML — cargar el documento.