当前位置: 首页 > news >正文

在线搭建网站网站制作维护

在线搭建网站,网站制作维护,惠山网站建设,网站建设基本流程信息技术KingbaseES 原生XML系列三--XML数据查询函数(EXTRACT,EXTRACTVALUE,EXISTSNODE,XPATH,XPATH_EXISTS,XMLEXISTS) XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的一种公共语言。在不同平台下产生的信息,可以很容易加载XML数据到程序…

KingbaseES 原生XML系列三--XML数据查询函数(EXTRACT,EXTRACTVALUE,EXISTSNODE,XPATH,XPATH_EXISTS,XMLEXISTS)

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函数列表

  • EXTRACT
  • EXTRACTVALUE
  • EXISTSNODE
  • XPATH
  • XPATH_EXISTS
  • XMLEXISTS

json函数简介

EXTRACT

功能:

extract会返回xpath指定的节点的xml数据。

用法:

extract(xml_instance xml, xpath text)

示例:

test=# select extract(xmlarray , '/kes/version' ) ,xmlarray from xmldata ;extract                        |                            xmlarray                             
------------------------------------------------------+-----------------------------------------------------------------<version>v8r3001</version><version>v8r6001</version> | <kes><version>v8r3001</version><version>v8r6001</version></kes><version>v8r3002</version><version>v8r6002</version> | <kes><version>v8r3002</version><version>v8r6002</version></kes><version>v8r3003</version><version>v8r6003</version> | <kes><version>v8r3003</version><version>v8r6003</version></kes>
(3 行记录)test=# select extract(xmldata , '/kes/sql' ) ,xmldata from xmldata ;      extract      |                    xmldata                    
-------------------+-----------------------------------------------<sql>sql001</sql> | <kes><sql>sql001</sql><rac>rac001</rac></kes><sql>sql002</sql> | <kes><sql>sql002</sql><rac>rac002</rac></kes><sql>sql003</sql> | <kes><sql>sql003</sql><rac>rac003</rac></kes>
(3 行记录)-- 获取节点属性值
test=# select extract('<kes><sql version="v8r6c7">sql001</sql><rac>rac001</rac></kes>','/kes/sql/@version') ;extract 
---------v8r6c7
(1 行记录)

EXTRACTVALUE

功能:

函数extractvalue会返回xpath指定的节点的值。如果节点的值是另一个节点,则不可获取,若指定节点路径存在多个相同节点,则会报错,也可通过数组形式,如:'/a/b[1]'指定返回具体节点。

用法:

extractvalue(xml_instance xml, xpath text)
extractvalue(xml_instance xml, xpath text, namespace _text)

示例:

test=# select extractvalue(xmldata , '/kes/sql' ) ,xmldata from xmldata ;extractvalue |                    xmldata                    
--------------+-----------------------------------------------sql001       | <kes><sql>sql001</sql><rac>rac001</rac></kes>sql002       | <kes><sql>sql002</sql><rac>rac002</rac></kes>sql003       | <kes><sql>sql003</sql><rac>rac003</rac></kes>
(3 行记录)-- 多个值时,报错。
test=# select extractvalue(xmlarray , '/kes/version' ) ,xmlarray from xmldata ;
错误:  EXTRACTVALUE returns value of only one node-- 多个值时,获取某个值
test=# select extractvalue(xmlarray , '/kes/version[1]' ) ,xmlarray from xmldata ;extractvalue |                            xmlarray                             
--------------+-----------------------------------------------------------------v8r3001      | <kes><version>v8r3001</version><version>v8r6001</version></kes>v8r3002      | <kes><version>v8r3002</version><version>v8r6002</version></kes>v8r3003      | <kes><version>v8r3003</version><version>v8r6003</version></kes>
(3 行记录)

EXISTSNODE

功能:

XML函数existsnode会遍历xml实例,判断指定节点是否存在于实例中。若存在则返回1,不存在则返回0。

用法:

existsnode(text PASSING [BY { REF | VALUE }] xml [BY { REF | VALUE }])
existsnode(xml_instance xml, xpath text)

示例:

test=# select existsnode(xmldata , '/kes/sql'), existsnode(xmlarray,'/kes/version'), existsnode(xmldata , '/kes/noitem'), xmldata  from xmldata ;existsnode | existsnode | existsnode |                    xmldata                    
------------+------------+------------+-----------------------------------------------1 |          1 |          0 | <kes><sql>sql001</sql><rac>rac001</rac></kes>1 |          1 |          0 | <kes><sql>sql002</sql><rac>rac002</rac></kes>1 |          1 |          0 | <kes><sql>sql003</sql><rac>rac003</rac></kes>
(3 行记录)

XPATH

功能:

函数xpath在 XML 值xml上计算 XPath 1.0 表达式 xpath (a text value)。它返回一个 XML 值的数组,该数组对应于该 XPath 表达式产生的结点集合。

用法:

xpath(xpath, xml [, nsarray])

示例:

test=# select xpath('/kes/*' , xmldata) from xmldata ;        xpath                 
---------------------------------------{<sql>sql001</sql>,<rac>rac001</rac>}{<sql>sql002</sql>,<rac>rac002</rac>}{<sql>sql003</sql>,<rac>rac003</rac>}
(3 行记录)

XPATH_EXISTS

功能:

函数xpath_exists是xpath函数的一种特殊形式。它返回一个布尔值表示查询是否被满足

用法:

xpath_exists(xpath, xml [, nsarray])

示例:

test=# select xpath('/kes/sql' , xmldata) , xpath('/kes/no' , xmldata) from xmldata ;  xpath        | xpath 
---------------------+-------{<sql>sql001</sql>} | {}{<sql>sql002</sql>} | {}{<sql>sql003</sql>} | {}
(3 行记录)

XMLEXISTS

功能:

XMLExists检查给定 XQuery 表达式是否返回非空 XQuery 序列。

用法:

XMLEXISTS(XQuery_string [XML_passing_clause])XML_passing_clause:PASSING [BY VALUE ] expr [AS identifier] [, ... ]

示例:

test=# SELECT xmlexists('/kes[text() = ''aaa'']' PASSING BY VALUE xmlvarchar) ,xmlvarchar from xmldata ;xmlexists |   xmlvarchar   
-----------+----------------t         | <kes>aaa</kes>f         | <kes>bbb</kes>f         | <kes>ccc</kes>
(3 行记录)test=# SELECT xmlexists('/kes/sql' PASSING BY VALUE xmldata) ,xmldata from xmldata;xmlexists |                    xmldata                    
-----------+-----------------------------------------------t         | <kes><sql>sql001</sql><rac>rac001</rac></kes>t         | <kes><sql>sql002</sql><rac>rac002</rac></kes>t         | <kes><sql>sql003</sql><rac>rac003</rac></kes>
(3 行记录)
http://www.hkea.cn/news/421394/

相关文章:

  • 广州网站 制作信科便宜网络营销软文范例500
  • 网站建设公开课长沙网站推广和优化
  • 建设网站的需求分析俄罗斯搜索引擎yandex推广入口
  • 可以做英文纵横字谜的网站搜狗网站收录入口
  • web前端开发是不是做网站百家号关键词排名优化
  • 夸克看网站要钱吗电商网站seo优化
  • 自己做网站排版138ip查询网域名解析
  • 东莞做网站 南城石佳2023网站推广入口
  • 广东省省建设厅网站郴州网站建设网络推广平台
  • 校园网站推广方案怎么做应用商店优化
  • 巩义网站建设网络营销公司是做什么的
  • 做网站基本教程一站式营销平台
  • 杭州模板网站建设电脑培训网上培训班
  • 大连做网站不错的公司怎样把广告放到百度
  • 网站上面带官网字样怎么做的网站设计的流程
  • 有个网站是做视频相册的网球排名即时最新排名
  • 论坛网站备案流程图优化大师怎么提交作业
  • 织梦政府网站模板百度在线入口
  • 专业做婚纱摄影网站会员制营销
  • 网站内容丰富互动营销平台
  • 阿里巴巴logo高清图谷歌seo网站推广
  • 网站如何做内链seo高手是怎样炼成的
  • 设计师个人网站建设怎样注册一个自己的平台
  • 徐州营销网站建设产品线上推广渠道
  • 绍兴市网站建设公司企业官网搭建
  • 关于网页设计的网站免费发布信息网站大全
  • 郑州新闻头条seo基础教程
  • 做网站比较大的公司朔州seo
  • 如何制作私人网站福州专业的seo软件
  • 做网站主流技术南宁在哪里推广网站