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

安徽省美好乡村建设网站软文网

安徽省美好乡村建设网站,软文网,wordpress 主题 字体,公司想做一个网站首页怎么做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.zhongyajixie.com/news/28646.html

相关文章:

  • 做门窗五金的网站seo标题关键词优化
  • 必应网站管理员工具电商平台推广
  • 做网站属于什么学科中国seo排行榜
  • 企业电商网站开发seo外链怎么发
  • 大连开发网站建设网站报价
  • 丰宁建设局网站友情链接样式
  • 加强门户网站建设通知关键词热度查询
  • 计算机考试网页制作怎么做seo技巧优化
  • 做纺织外贸网站站优云网络公司
  • 山东济南网站开发seo排名优化
  • c s网站开发模式独立站seo优化
  • 网页设计与网站建设程序作业百度帐号登录入口
  • 湖南seo服务如何做好seo优化
  • 织梦网站栏目管理空白seo优化方式包括
  • 全国室内设计公司排名刷神马网站优化排名
  • 广东企业备案 网站建设方案书开发外包网站
  • 网站建设建站怎么找当地的地推团队
  • 无锡手机网站重庆seo扣费
  • mvc 做网站如何自己制作一个网站
  • 网站 网址 域名精品成品网站源码
  • 男人做爽的免费网站app开发定制
  • 手机建网站需要多少钱旅游最新资讯
  • 网站商品台管理系统无锡百度公司王东
  • 摄图网的图片可以做网站吗seo网站关键词
  • 有哪些做婚礼电子请柬的网站搜索引擎优化指南
  • 免费申请地图定位外贸seo公司
  • 武汉做网站做得好的设计工作室中关村在线app
  • 网站开发工具的是什么营销云
  • 怎么在京东做网站近一周新闻热点事件
  • 做海鲜代理在什么网站软文新闻发稿平台