Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从PostgreSQL创建XML?_Java_Postgresql - Fatal编程技术网

Java 从PostgreSQL创建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

如何从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
$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
    );