En MariaDB, UPDATEXML()
es una función integrada que reemplaza una sola porción de un fragmento dado de marcado XML con un nuevo fragmento XML, luego devuelve el XML actualizado.
Sintaxis
La sintaxis es así:
UPDATEXML(xml_target, xpath_expr, new_xml)
Dónde:
xml_target
es el marcado XML que contiene el fragmento XML que desea actualizarxpath_expr
es el fragmento XML específico que desea actualizarnew_xml
es el fragmento XML que desea reemplazarxpath-expr
con
Ejemplo
He aquí un ejemplo básico:
SELECT
UPDATEXML(
'<pet><name>Wag</name><type></type></pet>',
'/pet/type',
'<type>Dog</type>'
) AS Result;
Resultado:
+---------------------------------------------+ | Result | +---------------------------------------------+ | <pet><name>Wag</name><type>Dog</type></pet> | +---------------------------------------------+
En este ejemplo, el marcado XML original tiene un <type>
vacío elemento. Usamos UPDATEXML()
para actualizar ese elemento, de modo que contenga contenido (Dog
).
Argumentos nulos
Pasando null
para cualquier argumento devuelve null
:
SELECT
UPDATEXML('<pet></pet>', '/pet', null) AS a,
UPDATEXML(null, '/pet', '<friend></friend>') AS b,
UPDATEXML('<pet></pet>', null, '<friend></friend>') AS c,
UPDATEXML(null, null, null) AS d;
Resultado:
+------+------+------+------+ | a | b | c | d | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Argumentos faltantes
Llamando a UPDATEXML()
con el número incorrecto de argumentos, o sin pasar ningún argumento da como resultado un error:
SELECT UPDATEXML();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'