xmlelement() 是一个系统函数,用于使用给定的名称、属性和内容生成 XML 元素。
xmlelement() 添加于 PostgreSQL 8.3。
用法
xmlelement (NAMEname[,XMLATTRIBUTES( attvalue [ ASattname] [, ...] ) ] [,content[, ...]] )
→ xml
请注意,name 和任何 attname 值都是 SQL 标识符,而不是字符串值。例如,要创建 XML 元素 foo,请提供
xmlelement(name foo)
而不是
xmlelement(name 'foo').
必须提供属性名称,除非属性值是列引用。
如果任何元素或属性名称无效 XML,它们将被转义,将任何无效字符替换为该字符的十六进制表示的 Unicode 码点,格式为 _xHHHH_。例如,字符 $ 将被编码为 _x0024_。
XMLATTRIBUTES 是一个语法元素,不是函数。
多个 content 值将被连接。
变更历史
- PostgreSQL 8.3
- 添加(提交 8c1de5fb)
示例
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)
参考资料
- PostgreSQL 文档: Xmlelement
另请参阅
反馈
在此处 提交关于“xmlelement()”的任何评论、建议或更正。