query_to_xml()

将查询结果转换为 XML 的函数

query_to_xml() 是一个将查询结果映射到 XML 的系统函数。

query_to_xml()PostgreSQL 8.3 中添加。

用法

query_to_xml ( query text, nulls boolean, tableforest boolean, targetns text )
         → xml

query 是要转换为 XML 的 PostgreSQL 查询的输出。请注意,如果提供 NULL,则函数将返回 NULL

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

<columnname xsi:nil="true"/>

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

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

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

变更历史

示例

query_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 query_to_xml('SELECT * FROM foo', true, true, '');
                        query_to_xml
-------------------------------------------------------------
 <row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">+
   <id>2</id>                                               +
   <val>2023-09-18 19:33:41.915739+09</val>                 +
 </row>                                                     +
                                                            +
 <row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">+
   <id>1</id>                                               +
   <val>2023-09-18 19:33:41.91568+09</val>                  +
 </row>                                                     +
                                                            +

(1 row)

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

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

(1 row)

nulls 设置为 truefalse 时的行为

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

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

(1 row)

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

(1 row)

targetns 指定值

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

(1 row)

分类

系统函数XML

参见

query_to_xmlschema()query_to_xml_and_xmlschema()table_to_xml()cursor_to_xml()database_to_xml()schema_to_xml()

反馈

提交任何关于“query_to_xml()”的评论、建议或更正 此处