I MariaDB, UPDATEXML()
är en inbyggd funktion som ersätter en enskild del av ett givet fragment av XML-uppmärkning med ett nytt XML-fragment och sedan returnerar den uppdaterade XML-filen.
Syntax
Syntaxen ser ut så här:
UPDATEXML(xml_target, xpath_expr, new_xml)
Var:
xml_target
är XML-uppmärkningen som innehåller XML-fragmentet du vill uppdateraxpath_expr
är det specifika XML-fragment som du vill uppdateranew_xml
är XML-fragmentet som du vill ersättaxpath-expr
med
Exempel
Här är ett grundläggande exempel:
SELECT
UPDATEXML(
'<pet><name>Wag</name><type></type></pet>',
'/pet/type',
'<type>Dog</type>'
) AS Result;
Resultat:
+---------------------------------------------+ | Result | +---------------------------------------------+ | <pet><name>Wag</name><type>Dog</type></pet> | +---------------------------------------------+
I det här exemplet har den ursprungliga XML-uppmärkningen en tom UPDATEXML()
för att uppdatera det elementet så att det innehåller innehåll (Dog
).
Nollargument
Skickar null
för alla argument returnerar 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;
Resultat:
+------+------+------+------+ | a | b | c | d | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Argument saknas
Anropar UPDATEXML()
med fel antal argument, eller utan att skicka några argument resulterar i ett fel:
SELECT UPDATEXML();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'