KingbaseES 原生XML系列一 -- XML构造函数
KingbaseES 原生XML系列一--XML构造函数(XML,XMLPARSE,XMLSERIALIZE,IS-DOCUMENT,XML_IS_WELL_FORMED,XML_IS_WELL_FORMED_CONTENT,XML_IS_WELL_FORMED_DOCUMENT)
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的一种公共语言。在不同平台下产生的信息,可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
xml数据类型可以被用来存储XML数据。它比直接在一个text域中存储XML数据的优势在于,它会检查输入值的结构是不是良好,并且有支持函数用于在其上执行类型安全的操作。
本文详细介绍了KingbaseES中集成的相关xml构造函数使用。
准备数据:
CREATE TABLE "public"."xmldata" (
"id" integer NULL,
"comm" varchar NULL,
"xmlvarchar" varchar NULL,
"xmldata" xml NULL,
"XMLarray" xml NULL
);
INSERT INTO xmldata values(1, 'zhangsan' , '<kes>aaa</kes>' , '<kes><sql>sql001</sql><rac>rac001</rac></kes>' , '<kes><version>v8r3001</version><version>v8r6001</version></kes>');
INSERT INTO xmldata values(2, 'lisi' , '<kes>bbb</kes>' , '<kes><sql>sql002</sql><rac>rac002</rac></kes>' , '<kes><version>v8r3002</version><version>v8r6002</version></kes>');
INSERT INTO xmldata values(3, 'wangwu' , '<kes>ccc</kes>' , '<kes><sql>sql003</sql><rac>rac003</rac></kes>' , '<kes><version>v8r3003</version><version>v8r6003</version></kes>');
xml函数列表
- XML
- XMLPARSE
- XMLSERIALIZE
- IS-DOCUMENT
- XML_IS_WELL_FORMED
- XML_IS_WELL_FORMED_CONTENT
- XML_IS_WELL_FORMED_DOCUMENT
json函数简介
XML
功能:
从字符数据中生成一个xml类型的值。
用法:
xml( text )
示例:
test=# select xml(comm) ,sys_typeof( xml(comm)),comm from xmldata ;
xml | sys_typeof | comm
----------+------------+----------
zhangsan | xml | zhangsan
lisi | xml | lisi
wangwu | xml | wangwu
(3 行记录)
XMLPARSE
功能:
从字符数据中生成一个xml类型的值,可以使用函数xmlparse。
用法:
XMLPARSE ( { DOCUMENT | CONTENT } value)
示例:
-- DOCUMENT 字符生成xml格式,字符需要是xml标准格式
test=# select xmlparse(document xmlvarchar) from xmldata ;
xmlparse
----------------
<kes>aaa</kes>
<kes>bbb</kes>
<kes>ccc</kes>
(3 行记录)
-- CONTENT 将字符生成xml格式的xml值
test=# select xmlparse(content comm) ,sys_typeof(xmlparse(content comm)) from xmldata ;
xmlparse | sys_typeof
----------+------------
zhangsan | xml
lisi | xml
wangwu | xml
(3 行记录)
XMLSERIALIZE
功能:
作为xmlparse逆操作,从xml产生一个字符串。
用法:
XMLSERIALIZE ( { DOCUMENT | CONTENT } value AS type )
type可以是 character、character varying或 text
示例:
test=# select xmlserialize(document xmldata as text),xmlserialize(document xmldata as varchar) from xmldata ;
xmlserialize | xmlserialize
-----------------------------------------------+-----------------------------------------------
<kes><sql>sql001</sql><rac>rac001</rac></kes> | <kes><sql>sql001</sql><rac>rac001</rac></kes>
<kes><sql>sql002</sql><rac>rac002</rac></kes> | <kes><sql>sql002</sql><rac>rac002</rac></kes>
<kes><sql>sql003</sql><rac>rac003</rac></kes> | <kes><sql>sql003</sql><rac>rac003</rac></kes>
(3 行记录)
IS-DOCUMENT
功能:
如果参数 XML 值是一个正确的 XML 文档,则IS DOCUMENT返回真,如果不是则返回假
用法:
xml IS DOCUMENT
示例:
test=# select (comm is document), comm ,(xmldata is document),xmldata from xmldata ;
?column? | comm | ?column? | xmldata
----------+----------+----------+-----------------------------------------------
f | zhangsan | t | <kes><sql>sql001</sql><rac>rac001</rac></kes>
f | lisi | t | <kes><sql>sql002</sql><rac>rac002</rac></kes>
f | wangwu | t | <kes><sql>sql003</sql><rac>rac003</rac></kes>
(3 行记录)
XML_IS_WELL_FORMED
功能:
检查一个text串是不是一个良构的 XML,返回一个布尔结果。
用法:
xml_is_well_formed(text)
示例:
test=# SELECT xml_is_well_formed('<abc>') , xml_is_well_formed('<abc/>');
xml_is_well_formed | xml_is_well_formed
--------------------+--------------------
f | t
(1 行记录)
XML_IS_WELL_FORMED_CONTENT
功能:
检查一个text串是不是一个良构的 XML,返回一个布尔结果。
用法:
xml_is_well_formed_content(text)
示例:
test=# SELECT xml_is_well_formed_content('<abc>') , xml_is_well_formed_content('<abc/>');
xml_is_well_formed_content | xml_is_well_formed_content
----------------------------+----------------------------
f | t
(1 行记录)
XML_IS_WELL_FORMED_DOCUMENT
功能:
检查一个text串是不是一个良构的 XML,返回一个布尔结果。
用法:
xml_is_well_formed_document(text)
示例:
test=# SELECT xml_is_well_formed_document('<abc>') , xml_is_well_formed_document('<abc/>');
xml_is_well_formed_document | xml_is_well_formed_document
-----------------------------+-----------------------------
f | t
(1 行记录)
KingbaseES 原生XML系列一 -- XML构造函数的更多相关文章
- C#编程基础->XML系列导航
缘由 最近开发的小程序过程中需要涉及到XML相关操作,突然发现自己对于这知识点了解的太少,急需学习加强.刚好项目的时间也不是很紧急,自己就总结XML相关知识点.一个方面自己学习,一个方面也希望可以帮到 ...
- XML系列之--Linq操作带属性的XML(四)
关于XML,之前解析过电文收发方面的,就是所谓的带表头.前缀(命名空间)SOAP格式.这次需求是解析一个xml的模板(xls内容),然后填充数据,最后保存.需要时可转换xls.pdf等文件.关于这种带 ...
- XML系列之--对电文格式XML的简单操作(三)
前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...
- XML系列之--创建电文格式的XML(一)
关于XML,学校那会,老师在口中仅仅提及,自己也未曾深入接触过,仅是些将最基本XML文件内容显示在web定义的表格中之类的简单操作,如今项目中的收发电文涉及到复杂XML的操作.趁此契机好好回顾下XML ...
- XML系列之--解析电文格式的XML(二)
上一节介绍了XML的结构以及如何创建.讲到了XML可作为一种简单文本存储数据,把数据存储起来,以XML的方式进行传递.当接收到XML时,必不可少的就是对其进行解析,捞取有效数据,或者将第三方数据以节点 ...
- 比較全的XML系列工具 能够轻松实现排版、转换和打印!
XML系列 --------------------------------------------------------------------------------1.Xsl Formatte ...
- OAF_文件系列6_实现OAF导出XML文件javax.xml.parsers/transformer(案例)
20150803 Created By BaoXinjian
- maven系列--settings.xml
安装maven,会有一份settings.xml文件,我们可以理解这份文件就是用来管理本地maven的一系列东西的.这里我先贴出一份完整的原始xml. <?xml version="1 ...
- Maven系列--web.xml 配置详解
一 .web.xml介绍 启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 紧接着,容 ...
- JS解析XML文件和XML字符串
JS解析XML文件 <script type='text/javascript'> loadXML = function(xmlFile){ var xmlDoc=null; //判断浏览 ...
随机推荐
- java怎么打印一个对象的内存地址
在Java一般使用HashCode来代表对象的地址,但是两个相同的对象就不行了,两个相同的对象的hashcode是相同的. 如果要对比两个相同的对象的地址可以使用,System.identityHas ...
- Jenkins下载插件报错
只要看日志报了什么错 下载超时 更新代理源https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 报unable ...
- MySQL和Redis基本安装和配置
MySQL 下载和安装 mysql官网下载:https://dev.mysql.com/downloads/mysql/ 下载后将目录下的bin路径加入到环境变量中 在安装目录下创建 my.ini 配 ...
- Spring + JAX-WS : ‘xxx’ is an interface, and JAXB can’t handle interfaces 错误解决方法
错误栈 Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotatio ...
- 【Azure Redis 缓存】Redis 连接失败
问题描述 Azure Redis 出现连接失败,过一会儿后,又能自动恢复. 问题解答 其实,因为Azure Redis服务一直都有升级维护的操作(平均每月一次),Redis服务更新是平台自动进行的计划 ...
- Taurus.MVC WebMVC 入门开发教程6:路由配置与路由映射
前言: 在本篇 Taurus.MVC WebMVC 入门开发教程的第六篇文章中, 我们将讨论如何配置路由并映射到控制器和操作方法. 路由是决定应用程序如何响应客户端请求的重要组成部分,因此在 Web ...
- 从全球顶级数据库大会 SIGMOD 看数据库发展趋势
本文来自 NebulaGraph 的软件工程师文豪在美国费城参加 2022 年 SIGMOD 大会时的见闻.SIGMOD 是数据库领域的顶级会议之一,是 CCF 数据库 / 数据挖掘 / 内容检索领域 ...
- 基于 Nebula Graph 构建图学习能力
本文首发于 Nebula Graph Community 公众号 经常看技术文章的小伙伴可能会留意到除了正在阅读的那篇文章,在文章页面的正文下方或者右侧区域会有若干同主题.同作者的文章等你阅读:经常逛 ...
- kotlin协程异常处理之-CoroutineExceptionHandler
转载请标明出处:https://www.cnblogs.com/tangZH/p/17307406.html kotlin协程小记 协程的async使用 kotlin协程异常处理之-try catch ...
- Vue3学习(二十二)- 保存文档内容
写在前面 前面已经调整了布局,富文本编辑器也能正确显示了,那么接下来就是怎么把数据保存到数据库里了,那么怎么做呢? 保存文档内容并显示 1.任务拆解 前端获取输入富文本框的html内容 改造保存接口, ...