In MariaDB UPDATEXML()
ist eine integrierte Funktion, die einen einzelnen Teil eines gegebenen XML-Markup-Fragments durch ein neues XML-Fragment ersetzt und dann das aktualisierte XML zurückgibt.
Syntax
Die Syntax lautet wie folgt:
UPDATEXML(xml_target, xpath_expr, new_xml)
Wo:
xml_target
ist das XML-Markup, das das zu aktualisierende XML-Fragment enthältxpath_expr
ist das spezifische XML-Fragment, das Sie aktualisieren möchtennew_xml
ist das XML-Fragment, das Siexpath-expr
ersetzen möchten mit
Beispiel
Hier ist ein einfaches Beispiel:
SELECT
UPDATEXML(
'<pet><name>Wag</name><type></type></pet>',
'/pet/type',
'<type>Dog</type>'
) AS Result;
Ergebnis:
+---------------------------------------------+ | Result | +---------------------------------------------+ | <pet><name>Wag</name><type>Dog</type></pet> | +---------------------------------------------+
In diesem Beispiel hat das ursprüngliche XML-Markup einen leeren <type>
Element. Wir haben UPDATEXML()
verwendet um dieses Element zu aktualisieren, sodass es Inhalt enthält (Dog
).
Null-Argumente
Übergabe von null
für jedes Argument gibt null
zurück :
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;
Ergebnis:
+------+------+------+------+ | a | b | c | d | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Fehlende Argumente
Aufruf von UPDATEXML()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT UPDATEXML();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'