XML Set Value
XML Set Value
Sección titulada «XML Set Value»Tipo: xml-set-value · Paquete: XML Activities v1.1.1 · Salida: string
Cambia el valor de texto del primer elemento (o atributo) que coincide con un XPath y devuelve el XML modificado. Úsala para actualizar datos en un documento XML: un estado, una fecha, un monto.
Cómo funciona
Sección titulada «Cómo funciona»Localiza la primera coincidencia de xpath en el xml, le pone el nuevo value y devuelve el XML completo modificado (como string). Recuerda guardar el resultado con Write XML.
- Si el XPath apunta a un atributo (
//cbc:ID/@schemeID), cambia el valor del atributo. - Si apunta a un elemento, reemplaza todo su contenido por el texto de
value: si el elemento tenía hijos, se eliminan. Para cambiar un dato interno, apunta al elemento hoja (//Cliente/Nombre, no//Cliente). valuepuede ser de cualquier tipo: se escribe su texto (true,1500).nulldeja el elemento vacío.- Solo cambia la primera coincidencia. Para cambiar varias, recorre los índices (
(//Item)[1],(//Item)[2]…) o usa un XPath más preciso. - Si no hay coincidencias, la actividad falla (no devuelve el XML sin cambios).
El XML devuelto lleva sangría y no incluye la declaración <?xml …?>; Write XML la escribe al guardar.
Los prefijos de namespace del documento funcionan directamente. Ver Namespaces.
Parámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
xml | string | — | El texto XML. |
xpath | string | — | XPath al elemento o atributo a actualizar, ej. //Factura/Estado o //cbc:ID/@schemeID. |
value | object | — | El nuevo valor. Se escribe como texto. |
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 XML completo modificado.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
Ningún nodo coincide con el XPath indicado. | El XPath no encuentra nada. Revísalo con XML Query Text; si el documento tiene namespace por defecto, usa el prefijo d: (el log te lo recuerda). |
El XPath debe seleccionar un elemento o un atributo. | El XPath calcula un valor (count(…)) o selecciona un nodo de texto (…/text()). Apunta al elemento o al atributo. |
'xml' es obligatorio. / 'xpath' es obligatorio. | El parámetro quedó vacío o su expresión dio null. |
La expresión XPath «…» no es válida: … / El prefijo 'x:' no está declarado … | Ver Errores comunes del paquete. |
Ejemplo
Sección titulada «Ejemplo»Read XML path = ruta → output: xmlXML Set Value xml = xml xpath = "//Factura/Estado" value = "Pagada" → output: xmlNuevoWrite XML path = ruta content = xmlNuevoCambiar un atributo de una factura UBL:
XML Set Value xml = factura xpath = "//cbc:PayableAmount/@currencyID" value = "USD" → output: facturaActividades relacionadas
Sección titulada «Actividades relacionadas»- XML Add Element — agregar un elemento nuevo.
- Write XML — guardar el resultado.