Java 从PostgreSQL创建XML?
如何从PostgreSQL创建XML文件 通过使用XML函数:Java 从PostgreSQL创建XML?,java,postgresql,Java,Postgresql,如何从PostgreSQL创建XML文件 通过使用XML函数: 假设您需要创建以下类型的XML <Agents> <agent id="32"/> <agent id="33"/> <agent id="34"/> </Agents> :)这里有一个存储过程(在PostgresSQL中称为函数),它从一个简单的查询返回XML CREATE OR REPLACE FUNCTION getXml() RETURNS xml AS
假设您需要创建以下类型的XML
<Agents>
<agent id="32"/>
<agent id="33"/>
<agent id="34"/>
</Agents>
:)这里有一个存储过程(在PostgresSQL中称为函数),它从一个简单的查询返回XML
CREATE OR REPLACE FUNCTION getXml()
RETURNS xml
AS
$BODY$
DECLARE myXml xml;
BEGIN
SELECT * INTO myXml FROM query_to_xml_and_xmlschema('SELECT id FROM someTable', true, true, 'myProject.mySchema');
RETURN myXml;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION getXml() OWNER TO postgres;
通过select语句调用函数:
SELECT getXml();
该函数将返回XSD模式表示法中的模式,并将XML中的数据呈现为“XML林”。这是我的问题的精确示例
CREATE TABLE xml_mobile_data AS SELECT
xml $$
<rows>
<row id="1">
<model>Samsung Galaxy Note 9</model>
<price>$3,000.00</price>
</row>
<row id="2">
<model>iPhone X</model>
<price>$1,000.00</price>
</row>
<row id="3">
<model>Samsung Galaxy S9+</model>
<price>$999.00</price>
</row>
<row id="4">
<model>Huawei P20 Pro</model>
<price>$2,000.00</price>
</row>
<row id="5">
<model>Google Pixel XL 3</model>
<price>$899.00</price>
</row>
</rows>
$$ AS mobile_data;
另一种方法是使用WITH QUERY CTE(公共表表达式)
使用xmldata(数据)作为(值)的
三星Galaxy Note 9
$3,000.00
iPhoneX
$1,000.00
三星Galaxy S9+
$999.00
华为P20专业版
$2,000.00
谷歌像素XL 3
$899.00
“::XML))
选择xmltable*
从xmldata,
XMLTABLE(“/rows/row”
传递数据
柱
平凡对平凡,
模型_id INT路径'@id',
模型文本路径“模型”,
“价格”货币
);
postgresql是DBMS,请澄清,好吗?但是你有任何代码jigar。。我只是开始…@JigarJoshi是的,即使DBMS可以隐式创建XML文件………嘿,jigar。。但是我想从Postgress创建xmlfile。。。你有什么确切的线索?我不是“吉加”。你的问题是什么?手册中列出的函数可用于“从”Postgres生成XML。手册中包含了一些关于如何操作的示例。互联网上有很多例子。只要搜索“PostgresXML生成”,我想从数据库创建xml文件。。我使用posgresql。。“select*tablename for xml auto;”这是rite查询吗??如果不告诉我仪式…你必须应用手册中记录的功能。select*fromtable
显然不会返回XMLForest,因为它是无效的XML文档。它只是内容:(
CREATE TABLE xml_mobile_data AS SELECT
xml $$
<rows>
<row id="1">
<model>Samsung Galaxy Note 9</model>
<price>$3,000.00</price>
</row>
<row id="2">
<model>iPhone X</model>
<price>$1,000.00</price>
</row>
<row id="3">
<model>Samsung Galaxy S9+</model>
<price>$999.00</price>
</row>
<row id="4">
<model>Huawei P20 Pro</model>
<price>$2,000.00</price>
</row>
<row id="5">
<model>Google Pixel XL 3</model>
<price>$899.00</price>
</row>
</rows>
$$ AS mobile_data;
SELECT xmltable.*
FROM xml_mobile_data,
XMLTABLE('/rows/row'
PASSING mobile_data
COLUMNS
ordinality FOR ORDINALITY,
model_id INT PATH '@id',
model TEXT PATH 'model',
"price" MONEY
);
WITH xmldata(data) AS (VALUES ('
<rows>
<row id="1">
<model>Samsung Galaxy Note 9</model>
<price>$3,000.00</price>
</row>
<row id="2">
<model>iPhone X</model>
<price>$1,000.00</price>
</row>
<row id="3">
<model>Samsung Galaxy S9+</model>
<price>$999.00</price>
</row>
<row id="4">
<model>Huawei P20 Pro</model>
<price>$2,000.00</price>
</row>
<row id="5">
<model>Google Pixel XL 3</model>
<price>$899.00</price>
</row>
</rows>
'::XML))
SELECT xmltable.*
FROM xmldata,
XMLTABLE('/rows/row'
PASSING data
COLUMNS
ordinality FOR ORDINALITY,
model_id INT PATH '@id',
model TEXT PATH 'model',
"price" MONEY
);