In MariaDB, UPDATEXML()
è una funzione incorporata che sostituisce una singola porzione di un dato frammento di markup XML con un nuovo frammento XML, quindi restituisce l'XML aggiornato.
Sintassi
La sintassi è questa:
UPDATEXML(xml_target, xpath_expr, new_xml)
Dove:
xml_target
è il markup XML che contiene il frammento XML che desideri aggiornarexpath_expr
è il frammento XML specifico che vuoi aggiornarenew_xml
è il frammento XML che vuoi sostituirexpath-expr
con
Esempio
Ecco un esempio di base:
SELECT
UPDATEXML(
'<pet><name>Wag</name><type></type></pet>',
'/pet/type',
'<type>Dog</type>'
) AS Result;
Risultato:
+---------------------------------------------+ | Result | +---------------------------------------------+ | <pet><name>Wag</name><type>Dog</type></pet> | +---------------------------------------------+
In questo esempio, il markup XML originale ha un <type>
vuoto elemento. Abbiamo usato UPDATEXML()
per aggiornare quell'elemento, in modo che contenga contenuto (Dog
).
Argomenti nulli
Passaggio null
per qualsiasi argomento restituisce 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;
Risultato:
+------+------+------+------+ | a | b | c | d | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Argomenti mancanti
Chiamando UPDATEXML()
con il numero errato di argomenti o senza passare alcun argomento genera un errore:
SELECT UPDATEXML();
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'