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 格式不正确,函数会报错。
示例
- 基本节点值提取
SELECT xpath_string('<a>123</a>', '/a');
+-----------------------------------+
| xpath_string('<a>123</a>', '/a') |
+-----------------------------------+
| 123 |
+-----------------------------------+
- 嵌套元素提取
SELECT xpath_string('<a><b>123</b></a>', '/a/b');
+--------------------------------------------+
| xpath_string('<a><b>123</b></a>', '/a/b') |
+--------------------------------------------+
| 123 |
+--------------------------------------------+
- 使用属性
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 |
+----------------------------------------------------------+
- 使用位置谓词
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 |
+----------------------------------------------------+
- 处理 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 |
+-----------------------------------------------+---------------------------------------------------+