磨砺技术珠矶,践行数据之道,追求卓越价值
回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页[作者 高健@博客园  luckyjackgao@gmail.com]

PostgreSQL及PPAS支持xml数据类型,故进行如下的实验。

先看PPAS9.2中的效果:

先建立表:

-bash-3.2$ ./bin/psql -d edb
psql (9.2.1.3)
"help" でヘルプを表示します. edb=# CREATE TABLE xmltab01(books xml);
CREATE TABLE
edb=# INSERT INTO xmltab01(books) VALUES ('<title>Book0001</title>');
INSERT 0 1
edb=# INSERT INTO xmltab01(books) VALUES ('<title>Book0002</title>');
INSERT 0 1
edb=#

再查询:

edb=# SELECT books from xmltab01;

books
-------------------------
<title>Book0001</title>
<title>Book0002</title>
(2 行)

然后,继续插入更复杂的数据:

edb=# INSERT INTO xmltab01(books) VALUES('

edb'# <book>
edb'# <title>Book0003</title>
edb'# <author>Author0003</author>
edb'# <publisher>Puber0003</publisher>
edb'# </book>');
INSERT 0 1
edb=#
edb=# INSERT INTO xmltab01(books) VALUES('

edb'# <book>
edb'# <title>Book0004</title>
edb'# <author>Author0004</author>
edb'# <publisher>Puber0004</publisher>
edb'# </book>');
INSERT 0 1
edb=#
edb=# INSERT INTO xmltab01(books) VALUES('
edb'# <book>
edb'# <title>Book0005</title>
edb'# <author>Author0004</author>
edb'# <publisher>Puber0004</publisher>
edb'# </book>');
INSERT 0 1
edb=#

接着,进行一个带条件的查询,查找出作者为Author0004的用户所写的书的title:

不符合条件的记录也被查询出来,留下一个空值。

edb=# SELECT xpath('/book[author/text()="Author0004"]/title', books) FROM xmltab01;
xpath
---------------------------
{}
{}
{}
{<title>Book0004</title>}
{<title>Book0005</title>}
(5 行) edb=#

最后删除表:

edb=# drop table xmltab01;
DROP TABLE
edb=#

下面是使用PostgreSQL时的情形,

初次使用发生错误,需要重新编译数据库:

postgres=# CREATE TABLE xmltab01(books xml);
CREATE TABLE
postgres=# INSERT INTO xmltab01(books) VALUES ('<title>Book0001</title>');
ERROR: unsupported XML feature
LINE 1: INSERT INTO xmltab01(books) VALUES ('<title>Book0001</title>...
^
DETAIL: This functionality requires the server to be built with libxml support.
HINT: You need to rebuild PostgreSQL using --with-libxml.
postgres=#

在进行了  ./configure --with-libxml  gmake && gmake install 之后,

可以正常工作。

[作者 高健@博客园  luckyjackgao@gmail.com]
回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页磨砺技术珠矶,践行数据之道,追求卓越价值

PostgreSQL处理xml数据初步的更多相关文章

  1. InnerException 消息是“反序列化对象 属于类型 *** 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。(注意细节)

    WEB站点在调用我们WCF服务的时候,只要传入的参数过长,就报如下错误: 格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错: formD ...

  2. XML数据的解析

    XML数据的解析 相比于JSON数据解析而言,XML数据解析可能会让更多的童鞋感觉到吃力,对我来说,同样认为JSON数据好像让人感觉比较友好,不过对于程序开发者来说,无非就是这两种数据解析占比较大的部 ...

  3. 11月15日下午 ajax返回数据类型为XML数据的处理

    ajax返回数据类型为XML数据的处理 /*XML:可扩展标记语言 HTML:超文本标记语言 标签:<标签名></标签名> 特点: 1.必须要有一个根 2.标签名自定义 3.对 ...

  4. iOS解析XML数据

    iOS中解析XML数据的类是  NSXMLParser,详细使用方法如下: 假设现在在内存中有XML的二进制数据对象(NSData):data(该数据可能来自网络,也可能是本地的文件数据),设置NSX ...

  5. wcf序列化大对象时报错:读取 XML 数据时,超出最大

    错误为: 访问服务异常:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出 错: request.InnerException 消息是“反序 ...

  6. php生成json或者xml数据

    , ,'数据返回成功',$arr);echo $xml;?>

  7. XML数据 JSON数据 LitJSON 数据 的编写和解析 小结

    用XML生成如下数据<?xml version="1.0"encoding="UTF-8"?><Transform name="My ...

  8. 一个简单xml数据转换为数组的方法

    本人用easywechat做微信回复图文,从数据库中拿到的数据直接是xml拼好的数据,但是框架只有自带的获取xml格式的语句,所有需要将xml数据中所需要的数据拿出来用来拼接. 搜了好多资料说的都很麻 ...

  9. Ajax跨域访问XML数据的另一种方式——使用YQL查询语句

    XML数据默认是不能在客户端通过Ajax跨域请求读取的,一般的做法是在服务器上写一个简单的代理程序,将远程XML的数据先读到本地服务器,然后客户端再从本地服务器通过Ajax来请求.由于我们不能对数据源 ...

随机推荐

  1. 使用uwsgi发布项目

    1.先下载 uwsgi 指定豆瓣源下载 pip install -i https://pypi.douban.com/simple uwsgi 2.查看你的uwsgi基于那个python解释器运行的 ...

  2. windows 下安装nodejs 要怎么设置环境变量

    windows 下安装nodejs 了,也安装了npm, 但是有时候切不能直接用request(‘ws’)这一类的东西.我觉得是确实环境变量或其他设置有问题,能否给个完整的设置方案: 要设置两个东西, ...

  3. 搭建企业级NFS网络文件共享服务[二]

    1.1.8 NFS问题总结 1.问:使用showmount -e 127.0.0.1后报clnt_create: RPC: Program not registered错误 答:顺序不对,重启nfs服 ...

  4. python SQLAlchemy复习

    下面的代码主要使用SQLAlchemy的ORM思想实现查询单词的功能: 实现输入一个单词,查询出与输入单词接近的单词以及单词的意思. 主要有以下三步: 1.创建数据表 2.插入数据 3.查询数据 1. ...

  5. 记一次webservice的超时时间设置

    一次项目组中需要控制超时时间,前期习惯用CXF实现,熟悉的才是最好的.所以这次依然想用CXF实现. 实现的方式代码如下: static{ String fvpWebserviceUrl = Prope ...

  6. 常见dos命令(win7下测试)

    按下组合键:win + R ,输入cmd进入Dos. 1.  cls :清屏命令. 2.  ver :查看系统版本号命令,winver弹出一个窗口显示更详细的系统版本号. 3.  dir  无参数 : ...

  7. zookeeper 快速入门

    分布式系统简介 在分布式系统中另一个需要解决的重要问题就是数据的复制.我们日常开发中,很多人会碰到一个问题:客户端C1更新了一个值K1由V1更新到V2.但是客户端C2无法立即读取到K的最新值.上面的例 ...

  8. luogu P2709 小B的询问

    嘟嘟嘟 莫队板子. 记住:删除是先删除再移动,添加是先移动在添加! #include<cstdio> #include<iostream> #include<cmath& ...

  9. Spring Boot Mock单元测试学习总结

    单元测试的方法有很多种,比如使用Postman.SoapUI等工具测试,当然,这里的测试,主要使用的是基于RESTful风格的SpringMVC的测试,我们可以测试完整的Spring MVC流程,即从 ...

  10. PHP MemCached高级缓存配置图文教程

    memcache是一个高性能的分布式的内存对象缓存系统,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.     1.Memcache相关介绍 memcache是一个高性能的 ...