更新时间:2024-09-02 GMT+08:00

XML谓词

本节的函数用户检查xml值的属性。

xml IS DOCUMENT

描述:如果参数XML值是一个正确的XML文档,则IS DOCUMENT返回真;如果非正确XML文档,则返回假;参数为空时返回空。

返回值类型:bool

1
2
3
4
5
SELECT '<abc/>' is document;
 ?column?
----------
 t
(1 row)

xml IS NOT DOCUMENT

描述:如果参数XML值不是一个正确的XML文档,则IS NOT DOCUMENT返回真;如果是正确XML文档,则返回假;参数为空时返回空。

返回值类型:bool

1
2
3
4
5
SELECT 'abc' is document;
 ?column?
----------
 f
(1 row)

XMLEXISTS(text PASSING [BY REF] xml [BY REF])

描述:如果第一个参数中的XPath表达式返回任何节点,则函数XMLEXISTS返回真,否则返回假(如果哪一个参数为空,则结果就为空)。BY REF子句没有作用,用于保持SQL兼容性。

返回值类型:bool

示例:

1
2
3
4
5
SELECT xmlexists('//town[text() = ''TScity'']' PASSING BY REF '<towns><town>TScity</town><town>TOcity</town></towns>');
 xmlexists
-----------
 t
(1 row)

xml_is_well_formed(text)

描述:检查text字符串是不是格式良好的XML值,返回布尔结果。如果xmloption参数设置为DOCUMENT则检查文档,如果设置为CONTENT则检查内容。

返回值类型:bool

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
SET xmloption TO DOCUMENT;
SET

SELECT xml_is_well_formed('<>');
 xml_is_well_formed
--------------------
 f
(1 row)

SELECT xml_is_well_formed('<abc/>');
 xml_is_well_formed
--------------------
 t
(1 row)

SET xmloption TO CONTENT;
SELECT xml_is_well_formed('abc');
 xml_is_well_formed
--------------------
 t
(1 row)

xml_is_well_formed_document(text)

描述:检查text字符串是不是格式良好的文档,返回布尔结果。

返回值类型:bool

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
SELECT xml_is_well_formed_document('<test:foo xmlns:test="http://test.com/test">bar</test:foo>');
 xml_is_well_formed
--------------------
 t
(1 row)

SELECT xml_is_well_formed_document('<test:foo xmlns:test="http://test.com/test">bar</my:foo>');
 xml_is_well_formed_document
-----------------------------
 f
(1 row)

xml_is_well_formed_content(text)

描述:检查text字符串是不是格式良好的内容,返回布尔结果。

返回值类型:bool

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
SELECT xml_is_well_formed_content('content');
 xml_is_well_formed_content
----------------------------
 t
(1 row)

SELECT xml_is_well_formed_content('<content');
 xml_is_well_formed_content
----------------------------
 f
(1 row)