联 系 我 们
售前咨询
售后咨询
微信关注:星环科技服务号
更多联系方式 >
6.7.4.11 XML 函数
更新时间:10/24/2023, 7:20:26 AM

xmlcolattval
函数语法 返回类型 描述

xmlcolattval(col1 [,col2…​])

XML 文本

将表中列的值转换为 column attribute 为列名的 XML 文本,然后将该行记录产生的所有 XML 文本相连并返回。

参数说明

  • col1col2…​:指定表的列名,暂不支持字符串等表达式。

使用示例

SELECT xmlcolattval(trans_id,price) AS result
FROM transactions LIMIT 3;
复制

返回示例

+--------------------------------------------------------+
|                         result                         |
+--------------------------------------------------------+
| <column trans_id="975639131"/><column price="5.3"/>    |
| <column trans_id="162742112"/><column price="12.21"/>  |
| <column trans_id="900192386"/><column price="8.64"/>   |
+--------------------------------------------------------+
复制
xmlelement
函数语法 返回类型 描述

xmlelement(expr1, expr2)

XML文本

基于指定的表达式生成 XML 文本,格式为 <expr1>expr2</expr1> 返回 形式的XML文本。

参数说明

  • expr1expr2:分别指定用户生成 XML 文本的表达式。

使用示例

SELECT xmlelement('a','b') AS result
FROM system.dual LIMIT 1;
复制

返回示例

+-----------+
|  result   |
+-----------+
| <a>b</a>  |
+-----------+
复制
xmlforest
函数语法 返回类型 描述

xmlforest(col1 [,col2…​])

XML 文本

将表中列的值转换为 XML 文本,然后将该行记录产生的所有 XML 文本相连并返回。

参数说明

  • col1col2…​:指定表的列名,暂不支持字符串等表达式。

使用示例

SELECT xmlforest(trans_id,price) AS result
FROM transactions LIMIT 3;
复制

返回示例

+-----------------------------------------------------+
|                       result                        |
+-----------------------------------------------------+
| <trans_id>975639131</trans_id><price>5.3</price>    |
| <trans_id>162742112</trans_id><price>12.21</price>  |
| <trans_id>900192386</trans_id><price>8.64</price>   |
+-----------------------------------------------------+
复制
xmlsequence
函数 返回类型 描述

xmlsequence(expr)

XML 文本

返回 XML 表达式中,顶级节点的值。

参数说明

  • expr:指定用于查询的 XML 表达式。

使用示例

SELECT xmlsequence('<Employee><id>36</id><name>Haines</name></Employee>') AS result
FROM system.dual LIMIT 1;
复制

返回示例

+---------------------------------+
|             result              |
+---------------------------------+
| <id>36</id><name>Haines</name>  |
+---------------------------------+
复制
xpath
函数语法 返回类型 描述

xpath(xml, xpath)

ARRAY<STRING>

返回与 XPath 匹配的 xml 节点内的值。

参数说明

  • xml:指定 XML 文本。

  • xpath:指定 XPath 表达式。

使用示例

SELECT xpath('<a><b>b1</b><b>b2</b><b>b3</b><c>c1</c><c>c2</c></a>', 'a/c/text()') AS result
FROM system.dual LIMIT 1;
复制

返回示例

+--------------+
|    result    |
+--------------+
| ["c1","c2"]  |
+--------------+
复制
xpath_boolean
函数语法 返回类型 描述

xpath_boolean (xml, xpath[=val])

BOOLEAN

判断 XML 文本中是否有匹配 XPath 的节点。

参数说明

  • xml:指定 XML 文本。

  • xpath:指定 XPath 表达式。

  • =val:额外判断匹配的节点内容中,是否包含 val 中指定的内容。

使用示例

SELECT xpath_boolean('<a><b>1</b></a>','a/b=0') AS result
FROM system.dual LIMIT 1;
复制

返回示例

+---------+
| result  |
+---------+
| false   |
+---------+
复制
xpath_double/xpath_number
函数 返回类型 描述
  • xpath_double (xml, expr(xpath))

  • xpath_number (xml, expr(xpath))

DOUBLE

对 XML 文档进行求值并以 DOUBLE 类型返回。

参数说明

  • xml:指定 XML 文本。

  • expr(xpath):指定 XPath 表达式,支持使用 sum、count 等表达式对 XPath 中的值进行计算。

使用示例

SELECT xpath_double('<a><b>1</b><b>2</b></a>','sum(a/b)') AS result
FROM system.dual LIMIT 1;
复制

返回示例

+---------+
| result  |
+---------+
| 3.0     |
+---------+
复制
xpath_float
函数 返回类型 描述

xpath_float (xml, expr(xpath))

FLOAT

对 XML 文档进行求值并以 FLOAT 类型返回。

参数说明

  • xml:指定 XML 文本。

  • expr(xpath):指定 XPath 表达式,支持使用 sum、count 等表达式对 XPath 中的值进行计算。

使用示例

SELECT xpath_float('<a><b>1</b><b>2</b></a>','sum(a/b)') AS result
FROM system.dual LIMIT 1;
复制

返回示例

+---------+
| result  |
+---------+
| 3.0     |
+---------+
复制
xpath_int
函数 返回类型 描述

xpath_int (xml, expr(xpath))

INT

对 XML 文档进行求值并以 INT 类型返回。

参数说明

  • xml:指定 XML 文本。

  • expr(xpath):指定 XPath 表达式,支持使用 sum、count 等表达式对 XPath 中的值进行计算。

使用示例

SELECT xpath_int('<a><b>1</b><b>2</b></a>','sum(a/b)') AS result
FROM system.dual LIMIT 1;
复制

返回示例

+---------+
| result  |
+---------+
| 3       |
+---------+
复制
xpath_long
函数 返回类型 描述

xpath_long (xml, expr(xpath))

LONG

对 XML 文档进行求值并以 LONG 类型返回。

参数说明

  • xml:指定 XML 文本。

  • expr(xpath):指定 XPath 表达式,支持使用 sum、count 等表达式对 XPath 中的值进行计算。

使用示例

ELECT xpath_long('<a><b>1</b><b>2</b></a>','sum(a/b)') AS result
FROM system.dual LIMIT 1;
复制

返回示例

+---------+
| result  |
+---------+
| 3       |
+---------+
复制
xpath_short
函数 返回类型 描述

xpath_short (xml, expr(xpath))

SHORT

对 XML 文档进行求值并以 SHORT 类型返回。

参数说明

  • xml:指定 XML 文本。

  • expr(xpath):指定 XPath 表达式,支持使用 sum、count 等表达式对 XPath 中的值进行计算。

使用示例

SELECT xpath_short('<a><b>1</b><b>2</b></a>','sum(a/b)') AS result
FROM system.dual LIMIT 1;
复制

返回示例

+---------+
| result  |
+---------+
| 3       |
+---------+
复制
xpath_string
函数语法 返回类型 描述

xpath_string(<xml>,<xpath>)

STRING

返回与 XPath 表达式匹配的第一个 XML 节点的内容。

参数说明

  • xml:指定 XML 文本。

  • xpath:指定 XPath 表达式。

使用示例

SELECT xpath_string('<a><b>b</b><c>cc</c></a>','a/c') AS result FROM system.dual LIMIT 1;
复制

返回示例

+---------+
| result  |
+---------+
| cc      |
+---------+
复制
xpathstring_plus
函数语法 返回类型 描述

xpathstring_plus(xml, xpath1, xpath2)

STRING

返回第一个匹配 XPath1 和 XPath2 表达式的 XML 节点的文本内容。

参数说明

  • xml:指定 XML 文本。

  • xpath1:指定第一个 XPath 表达式。

  • xpath2:指定第二个 XPath 表达式。

使用示例:

SELECT xpathstring_plus('<a><b>b1</b><b>b2</b></a>','a','b') AS result
FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| b1      |
+---------+
复制