源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

PostgreSQL中的XML操作函数代码

  • 时间:2021-12-02 20:19 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PostgreSQL中的XML操作函数代码
XML内容生成部分 SQL数据生成XML的函数。 [b]1. xmlcomment:生成注释函数。[/b] xmlcomment(text ) 例: SELECT xmlcomment('hello'); xmlcomment -------------- <!--hello--> [b]2. xmlconcat:XML连接函数[/b] xmlconcat(xml [, ...]) 例: SELECT xmlconcat('<abc/>', '<bar>foo</bar>'); xmlconcat ---------------------- <abc/><bar>foo</bar> 连接的XML数据中如果有多个版本声明的话,连接后的XML只有一个版本声明。 例: SELECT xmlconcat('<?xml version="1.1"?><foo/>', '<?xml version="1.1" standalone="no"?><bar/>'); xmlconcat ----------------------------------- <?xml version="1.1"?><foo/><bar/> [b]3. xmlelement:生成XML元素函数[/b] xmlelement(name name [, xmlattributes( value [AS attname ] [, ... ])] [ , content, ... ]) 例: SELECT xmlelement(name foo); xmlelement ------------ <foo/> SELECT xmlelement(name foo, xmlattributes('xyz' as bar)); xmlelement ------------------ <foo bar="xyz"/> SELECT xmlelement(name foo, xmlattributes(current_date as bar), 'cont', 'ent'); xmlelement ------------------------------------- <foo bar="2007-01-26">content</foo> 如果有非法字符的话,非常字符会用 16进制的数字表示出来。 例子:SELECT xmlelement(name "foo$bar", xmlattributes('xyz' as "a&b")); xmlelement ---------------------------------- <foo_x0024_bar a_x0026_b="xyz"/> [b]4. xmlforest:生成XML FOREST函数[/b] xmlforest(content [AS name ] [, ...]) 例: SELECT xmlforest('abc' AS foo, 123 AS bar); xmlforest ------------------------------ <foo>abc</foo><bar>123</bar> SELECT xmlforest(table_name, column_name) FROM information_schema.columns WHERE table_schema = 'pg_catalog'; xmlforest ------------------------------------------------------------------------------------------- <table_name>pg_authid</table_name><column_name>rolname</column_name> <table_name>pg_authid</table_name><column_name>rolsuper</column_name> ... [b]5. xmlpi:生成XML处理命令函数。 [/b]xmlpi(name target [, content ]) 例: SELECT xmlpi(name php, 'echo "hello world";'); xmlpi ----------------------------- <?php echo "hello world";?> [b]6. xmlroot:修改XML值的根节点属性函数 [/b]xmlroot(xml , version text |no value [, standalone yes|no|no value]) 例子:SELECT xmlroot(xmlparse(document '<?xml version="1.1"?><content>abc</content>'), version '1.0', standalone yes); xmlroot ---------------------------------------- <?xml version="1.0" standalone="yes"?> <content>abc</content> [b]7. xmlagg:xmlagg是集约函数[/b] xmlagg(xml ) 例: CREATE TABLE test (y int, x xml); INSERT INTO test VALUES (1, '<foo>abc</foo>'); INSERT INTO test VALUES (2, '<bar/>'); SELECT xmlagg(x) FROM test; xmlagg ---------------------- <foo>abc</foo><bar/> 可以用下面类型的方法改变连接顺序。 SELECT xmlagg(x) FROM (SELECT * FROM test ORDER BY y DESC) AS tab; xmlagg ---------------------- <bar/><foo>abc</foo> Processing XML 为了处理XML数据,PostgreSL中提供了xpath函数。 xpath(xpath , xml [, nsarray ]) 例: SELECT xpath('/my:a/text()', '<my:a xmlns:my="http://example.com">test</my:a>', ARRAY[ARRAY['my', 'http://example.com']]); xpath -------- {test} (1 row) XML和table的映射 以下函数可以导出XML。 table_to_xml(tbl regclass, nulls boolean, tableforest boolean, targetns text) query_to_xml(query text, nulls boolean, tableforest boolean, targetns text) cursor_to_xml(cursor refcursor, count int, nulls boolean, tableforest boolean, targetns text) 这些函数的返回值都是XML类型。 还有以下函数。具体内容可以参看用户手册。 table_to_xmlschema(tbl regclass, nulls boolean, tableforest boolean, targetns text) query_to_xmlschema(query text, nulls boolean, tableforest boolean, targetns text) cursor_to_xmlschema(cursor refcursor, nulls boolean, tableforest boolean, targetns text) table_to_xml_and_xmlschema(tbl regclass, nulls boolean, tableforest boolean, targetns text) query_to_xml_and_xmlschema(query text, nulls boolean, tableforest boolean, targetns text) schema_to_xml(schema name, nulls boolean, tableforest boolean, targetns text) schema_to_xmlschema(schema name, nulls boolean, tableforest boolean, targetns text) schema_to_xml_and_xmlschema(schema name, nulls boolean, tableforest boolean, targetns text) database_to_xml(nulls boolean, tableforest boolean, targetns text) database_to_xmlschema(nulls boolean, tableforest boolean, targetns text) database_to_xml_and_xmlschema(nulls boolean, tableforest boolean, targetns text)
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部