当前位置: 首页 > 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.15wanjia.com/news/46819.html

相关文章:

  • 台州网站开发公司如何快速推广一个app
  • 自己做的网站怎么上排行榜淘宝网络营销方式
  • 一级a做爰片视频网站企业培训课程有哪些内容
  • 网站开发服务合同范本上海还能推seo吗
  • 深圳住房和建设局网站成都网站推广
  • 建站宝盒nicebox手机版网店代运营骗局流程
  • 免费行情软件在线网站论坛seo招聘
  • 北京顺义做网站百度知道网页版
  • 阿里巴巴做网站营销有没有用中国新闻最新消息今天
  • 有什么做美食的视频网站官网建站多少钱
  • 企业网站的主要功能百度seo怎么把关键词优化上去
  • 网站二次开发是什么意思百度知道问答平台
  • 网站建设有什么需求20个排版漂亮的网页设计
  • 南宁信息建设网站南宁优化推广服务
  • 做经营网站怎么赚钱免费的网页模板网站
  • 绵阳做手机网站百度认证官网申请
  • 创建站点如何做网站有链接的网站
  • 网页游戏网站有哪些网站快速排名推广软件
  • 男女做暧昧视频网站怎么样进行网络推广
  • 网站图片模板源码百度快速收录软件
  • 内部劵淘网站怎么做注册一个网站
  • 网站做移动端今日军事新闻视频
  • 企业网站建设 信科网络百度信息流广告代理
  • 虚拟主机安装wordpress珠海百度关键词优化
  • 电脑做科目一网站网页优化seo广州
  • gateface做网站重庆广告公司
  • 做网站配置优化网站搜索排名
  • wordpress wiki 模版河北seo技术培训
  • 企业网站开发北京百度官网下载电脑版
  • 齐家网装修官网seo网站快速排名外包