説明
この関数は、XML文字列内の指定されたパスのノード内容を更新するために使用されます。
構文
UPDATEXML(xml_target, xpath_expr, new_xml)
パラメータの説明
説明
xml_target 内で xpath_expr によって指定された部分を new_xml に置き換えます。xpath_expr が一致する結果がない場合、または複数の結果が一致した場合は、xml_target の元の結果を返します。
| フィールド | 説明 |
|---|---|
| xml_target | 指定されたXML文字列。XMLドキュメントまたはその一部である場合があります。 |
| xpath_expr | 更新するノードのパス(XPath)式を指定します。 |
| new_xml | ノードを置き換える新しいXMLセグメントを指定します。 |
戻り値のタイプ
戻り値のタイプは LONGTEXT です。
例
UPDATEXML関数を使用して、XML文字列内の</a>ノードを<x>carrot</x>ノードに置き換え、更新後のXML文字列を返します。は、と` の2つのノードを含むルートノードを表します。obclient [test_db]> SELECT UPDATEXML('<a/><b/>', '/a', '<x>carrot</x>');実行結果は次のとおりです:
+----------------------------------------------+ | UPDATEXML('<a/><b/>', '/a', '<x>carrot</x>') | +----------------------------------------------+ | <x>carrot</x><b></b> | +----------------------------------------------+ 1 row in setUPDATEXML関数を使用して、XML文字列内のrootノードの下のaノードを<b>bbb</b>ノードに置き換え、更新後のXML文字列を返します。obclient [test_db]> SELECT UPDATEXML('<root><a>aaa</a></root>', '/root/a', '<b>bbb</b>');実行結果は次のとおりです:
+---------------------------------------------------------------+ | UPDATEXML('<root><a>aaa</a></root>', '/root/a', '<b>bbb</b>') | +---------------------------------------------------------------+ | <root><b>bbb</b></root> | +---------------------------------------------------------------+ 1 row in set