Dans MariaDB, UPDATEXML() est une fonction intégrée qui remplace une seule partie d'un fragment donné de balisage XML par un nouveau fragment XML, puis renvoie le XML mis à jour.
Syntaxe
La syntaxe ressemble à ceci :
UPDATEXML(xml_target, xpath_expr, new_xml) Où :
xml_targetest le balisage XML qui contient le fragment XML que vous souhaitez mettre à jourxpath_exprest le fragment XML spécifique que vous souhaitez mettre à journew_xmlest le fragment XML que vous souhaitez remplacerxpath-expravec
Exemple
Voici un exemple de base :
SELECT
UPDATEXML(
'<pet><name>Wag</name><type></type></pet>',
'/pet/type',
'<type>Dog</type>'
) AS Result; Résultat :
+---------------------------------------------+ | Result | +---------------------------------------------+ | <pet><name>Wag</name><type>Dog</type></pet> | +---------------------------------------------+
Dans cet exemple, le balisage XML d'origine a un <type> vide élément. Nous avons utilisé UPDATEXML() pour mettre à jour cet élément, afin qu'il contienne du contenu (Dog ).
Arguments nuls
Passer null pour tout argument renvoie 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; Résultat :
+------+------+------+------+ | a | b | c | d | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Arguments manquants
Appel de UPDATEXML() avec le mauvais nombre d'arguments, ou sans passage d'arguments, une erreur se produit :
SELECT UPDATEXML(); Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'