跳到主要内容

XPATH_STRING

描述

XPATH_STRING 函数用于解析 XML 字符串并返回第一个匹配 XPath 表达式的 XML 节点。

提示

该函数自 3.0.6 版本开始支持.

语法

XPATH_STRING(<xml_string>, <xpath_expression>)

参数

参数描述
<xml_string>源字符串。类型:VARCHAR
<xpath_expression>XPath 表达式。类型:VARCHAR

返回值

返回 VARCHAR 类型,表示匹配 XPath 表达式的第一个 XML 节点的内容。

特殊情况:

  • 如果 XML 或 XPath 格式不正确,函数会报错。

示例

  1. 基本节点值提取
SELECT xpath_string('<a>123</a>', '/a');
+-----------------------------------+
| xpath_string('<a>123</a>', '/a') |
+-----------------------------------+
| 123 |
+-----------------------------------+
  1. 嵌套元素提取
SELECT xpath_string('<a><b>123</b></a>', '/a/b');
+--------------------------------------------+
| xpath_string('<a><b>123</b></a>', '/a/b') |
+--------------------------------------------+
| 123 |
+--------------------------------------------+
  1. 使用属性
SELECT xpath_string('<a><b id="1">123</b></a>', '//b[@id="1"]');
+----------------------------------------------------------+
| xpath_string('<a><b id="1">123</b></a>', '//b[@id="1"]') |
+----------------------------------------------------------+
| 123 |
+----------------------------------------------------------+
  1. 使用位置谓词
SELECT xpath_string('<a><b>1</b><b>2</b></a>', '/a/b[2]');
+----------------------------------------------------+
| xpath_string('<a><b>1</b><b>2</b></a>', '/a/b[2]') |
+----------------------------------------------------+
| 2 |
+----------------------------------------------------+
  1. 处理 CDATA 和注释
SELECT xpath_string('<a><![CDATA[123]]></a>', '/a'), xpath_string('<a><!-- comment -->123</a>', '/a');
+-----------------------------------------------+---------------------------------------------------+
| xpath_string('<a><![CDATA[123]]></a>', '/a') | xpath_string('<a><!-- comment -->123</a>', '/a') |
+-----------------------------------------------+---------------------------------------------------+
| 123 | 123 |
+-----------------------------------------------+---------------------------------------------------+