table_to_xml()

将表内容转换为 XML 的函数

table_to_xml() 是一个将表内容映射到 XML 的系统函数。

table_to_xml()PostgreSQL 8.3 中添加。

用法

table_to_xml ( table regclass, nulls boolean, tableforest boolean, targetns text )
         → xml

tableforest,当设置为 true 时,返回每个列集都包含在 <tablename> 元素中,或者当设置为 false 时,每个列集都包含在外部 <tablename> 元素中的 <row> 元素中。

nulls,当设置为 true 时,返回输出中表示为

<columnname xsi:nil="true"/>

如果 nulls 设置为 false,则输出中将省略 NULL 值。

targetns 指定结果的 XML 命名空间。如果提供空字符串,则不使用命名空间。请注意,如果提供 NULL,则函数将返回 NULL

函数 table_to_xmlschema() 提供描述 table_to_xml() 执行的映射的 XML 架构文档。table_to_xml_and_xmlschema() 结合了这两个函数的输出。

更改历史记录

示例

table_to_xml() 的基本用法示例

postgres=# CREATE TABLE foo (id INT, val TEXT);
CREATE TABLE

postgres=# INSERT INTO foo VALUES(generate_series(1,2), clock_timestamp());
INSERT 0 2

postgres=# SELECT table_to_xml('foo'::regclass, true, true, '');
                        table_to_xml
-------------------------------------------------------------
 <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">+
   <id>1</id>                                               +
   <val>2023-09-18 19:33:41.91568+09</val>                  +
 </foo>                                                     +
                                                            +
 <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">+
   <id>2</id>                                               +
   <val>2023-09-18 19:33:41.915739+09</val>                 +
 </foo>                                                     +
                                                            +

(1 row)

与上面相同,但 tableforest 设置为 false

postgres=# SELECT table_to_xml('foo'::regclass, true, false, '');
                        table_to_xml
-------------------------------------------------------------
 <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">+
                                                            +
 <row>                                                      +
   <id>1</id>                                               +
   <val>2023-09-18 19:33:41.91568+09</val>                  +
 </row>                                                     +
                                                            +
 <row>                                                      +
   <id>2</id>                                               +
   <val>2023-09-18 19:33:41.915739+09</val>                 +
 </row>                                                     +
                                                            +
 </foo>                                                     +

(1 row)

nulls 设置为 truefalse 时的行为

postgres=# UPDATE foo SET val = NULL;
UPDATE 2

postgres=# SELECT table_to_xml('foo'::regclass, true, true, '');
                        table_to_xml
-------------------------------------------------------------
 <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">+
   <id>1</id>                                               +
   <val xsi:nil="true"/>                                    +
 </foo>                                                     +
                                                            +
 <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">+
   <id>2</id>                                               +
   <val xsi:nil="true"/>                                    +
 </foo>                                                     +
                                                            +

(1 row)

postgres=# SELECT table_to_xml('foo'::regclass, false, true, '');
                        table_to_xml
-------------------------------------------------------------
 <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">+
   <id>1</id>                                               +
 </foo>                                                     +
                                                            +
 <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">+
   <id>2</id>                                               +
 </foo>                                                     +
                                                            +

(1 row)

targetns 指定值

postgres=# SELECT table_to_xml('foo'::regclass, true, true, 'foo');
                              table_to_xml
-------------------------------------------------------------------------
 <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="foo">+
   <id>1</id>                                                           +
   <val xsi:nil="true"/>                                                +
 </foo>                                                                 +
                                                                        +
 <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="foo">+
   <id>2</id>                                                           +
   <val xsi:nil="true"/>                                                +
 </foo>                                                                 +
                                                                        +

(1 row)

分类

系统函数XML

另请参阅

table_to_xmlschema()table_to_xml_and_xmlschema()query_to_xml()cursor_to_xml()database_to_xml()schema_to_xml()

反馈

提交您对“table_to_xml()”的任何评论、建议或更正 此处