説明
この関数は、XML文字列内の指定されたパスのノード内容を更新するために使用されます。
構文
UPDATEXML(xml_target, xpath_expr, new_xml)
パラメータの説明
説明
xml_target のうち、xpath_expr で指定された部分を new_xml に置き換えます。xpath_expr が結果と一致しない場合、または複数の結果と一致する場合は、xml_target の元の結果を返します。
フィールド |
説明 |
|---|---|
| xml_target | 指定するXML文字列。XMLドキュメントまたはXMLフラグメントのいずれかです。 |
| xpath_expr | 更新対象ノードのパス(XPath)式を指定します。 |
| new_xml | ノードを置き換えるための新しいXMLフラグメントを指定します。 |
戻り値の型
戻り値の型は LONGTEXT です。
例
UPDATEXML関数を使用して、XML文字列内の</a>ノードを<x>carrot</x>ノードに置き換え、更新後のXML文字列を返します。<a/><b/>は、2つのノード<a>と<b>を含むルートノードを表します。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