跳到主要内容

UPDATEXML

描述

该函数用于更新 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 字符串。<a/><b/> 表示一个包含了两个节点 <a><b> 的根节点。

    SELECT UPDATEXML('<a/><b/>', '/a', '<x>carrot</x>');

    返回结果如下:

    +----------------------------------------------+
    | UPDATEXML('<a/><b/>', '/a', '<x>carrot</x>') |
    +----------------------------------------------+
    | <x>carrot</x><b></b> |
    +----------------------------------------------+
    1 row in set (0.001 sec)
  • 使用 UPDATEXML 函数将 XML 字符串中的 root 节点下的 a 节点替换为 <b>bbb</b> 节点,并返回更新后的 XML 字符串。

    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 (0.001 sec)