I MariaDB, UPDATEXML()
er en indbygget funktion, der erstatter en enkelt del af et givet fragment af XML-markering med et nyt XML-fragment og derefter returnerer den opdaterede XML.
Syntaks
Syntaksen ser sådan ud:
UPDATEXML(xml_target, xpath_expr, new_xml)
Hvor:
xml_target
er den XML-markering, der indeholder det XML-fragment, du vil opdaterexpath_expr
er det specifikke XML-fragment, som du vil opdatereny_xml
er det XML-fragment, som du vil erstattexpath-expr
med
Eksempel
Her er et grundlæggende eksempel:
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 dette eksempel har den originale XML-markup en tom UPDATEXML()
at opdatere det element, så det indeholder indhold (Dog
).
Nul-argumenter
Sender null
for ethvert argument returnerer 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 | +------+------+------+------+
Manglende argumenter
Kalder UPDATEXML()
med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
SELECT UPDATEXML();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'