xmlelement()

用于生成 XML 元素的函数

xmlelement() 是一个用于生成具有给定名称、属性和内容的 XML 元素的系统函数。

xmlelement()PostgreSQL 8.3 中添加。

用法

xmlelement ( NAME name [, XMLATTRIBUTES ( attvalue [ AS attname ] [, ...] ) ] [, content [, ...]] )
        → xml

请注意,name 和任何 attname 值都是 SQL 标识符,而不是字符串值。例如,要创建 XML 元素 foo,请提供

    xmlelement(name foo)

而不是

    xmlelement(name 'foo').

必须提供属性名称,除非属性值是列引用。

如果任何元素或属性名称不是有效的 XML,则它们将通过将任何无效字符替换为该字符的 Unicode 代码点(以十六进制表示法表示,格式为 _xHHHH_)来转义。例如,字符 $ 将编码为 _x0024_

XMLATTRIBUTES 是一个语法元素,而不是函数。

多个 content 值将被连接。

变更历史

示例

xmlelement() 的基本用法示例

postgres=# SELECT xmlelement(name foo);
 xmlelement 
------------
  <foo/>
(1 row)

在生成的 XML 元素中包含属性

postgres=# SELECT xmlelement(name foo, xmlattributes('xyz' AS bar));
    xmlelement    
------------------
  <foo bar="xyz"/>
(1 row)

在生成的 XML 元素中包含内容

postgres=# SELECT xmlelement(name foo, 'Lorem ipsum');
       xmlelement       
------------------------
 <foo>Lorem ipsum</foo>
(1 row)

多个 content 值将被连接

postgres=# SELECT xmlelement(name foo, 'Lorem ipsum', ' ', 'dolor sit amet');
              xmlelement               
---------------------------------------
 <foo>Lorem ipsum dolor sit amet</foo>
(1 row)

必须指定属性名称

postgres=# SELECT xmlelement(name foo, xmlattributes('xyz'));
ERROR:  unnamed XML attribute value must be a column reference
LINE 1: SELECT xmlelement(name foo, xmlattributes('xyz'));

除非它们是列引用

postgres=# CREATE TABLE bar (a text, b text);
CREATE TABLE

postgres=# INSERT INTO bar VALUES('hello', 'world');
INSERT 0 1

postgres=# SELECT xmlelement(name foo, xmlattributes(a, b)) FROM bar;
         xmlelement         
----------------------------
 <foo a="hello" b="world"/>
(1 row)

不是有效 XML 名称的元素和属性名称将把不符合规范的字符替换为该字符的 Unicode 代码点(以十六进制表示法表示)

postgres=# SELECT xmlelement(name "foo$bar", xmlattributes('xyz' as "a&b"));
            xmlelement            
----------------------------------
 <foo_x0024_bar a_x0026_b="xyz"/>
(1 row)

分类

系统函数XML

另请参阅

xmlforest()

反馈

提交任何关于 "xmlelement()" 的评论、建议或更正 此处