2017-03-16 14 views
1

私はXML文書を持っています。それをposgresqlテーブルに入れてください。 これは私がそれを置く方法です。postgresqlでxmlを操作しますか?

create or replace function bytea_import(p_path text, p_result out bytea) 
        language plpgsql as $$ 
declare 
    l_oid oid; 
    r record; 
begin 
    p_result := ''; 
    select lo_import(p_path) into l_oid; 
    for r in (select data 
      from pg_largeobject 
      where loid = l_oid 
      order by pageno) loop 
    p_result = p_result || r.data; 
    end loop; 
    perform lo_unlink(l_oid); 
end;$$; 


insert into mydocs(docform,content) 
values (3, convert_from(bytea_import('D:/html/ex08.xml'), 'utf-8')); 

ドキュメントを変更する必要があります。例えば

<?xml version="1.0"?> 
<list_of_items> 
<item id="1"><first/>first</item> 
<item id="2">second <sub_item>subsecond 1</sub_item></item> 
<item id="3">third</item> 
<item id="4"><last/>last</item> 
</list_of_items> 

は、この文書からテキストを取り出して、他のテーブルに配置する必要があります:2

secondは、テーブルの列2に入れ、テーブルの列1に

firstを入れて2

subsecond表2の第3列に入れる

third 4桁目に入れるテーブルの列5 2

甲に入れFテーブル2

lastは良い答えをした、しかし、私は1つのより多くの質問があります。 どのようにxmlのためにそれを作った。 方法xpath検索せずに、

<?xml version="1.0"?> 
<list_of_items> 
</list_of_items> 

のような行を削除し、任意のテキストを選択するには?

答えて

0

あなたは今日の最も難しい質問を獲得しました。それのためにupvoteを取得!あなたが得ることができます

WITH x(col) AS (
    SELECT '<?xml version="1.0"?> 
    <list_of_items> 
    <item id="1"><first/>first</item> 
    <item id="2">second <sub_item>subsecond 1</sub_item></item> 
    <item id="3">third</item> 
    <item id="4"><last/>last</item> 
    </list_of_items> 
    '::xml 
), interpreted as (
    SELECT xpath('.//item/text()', col) AS val, 
      xpath('.//sub_item/text()', col) AS val2 
    FROM x 
) 
SELECT val[1] as col1, val[2] as col2, val2[1] as col3, val[3] as col4, val[4] as col5 
FROM interpreted 
; 

::次のクエリでは

col1 | col2 | col3  | col4 | col5 
-------+---------+-------------+-------+------ 
first | second | subsecond 1 | third | last 
(1 row) 
+0

をそれだけでこのようにすることができ – Gab

+0

"私は***このSのための十分なお金を稼ぐことはありませんか"? xmlのすべての種類の共通または一般的な方法はありますか? –

+0

どういう意味ですか?これは、あなたが求めたことを正確に行うシンプルなソリューションです。そのかなり一般的な – Gab

関連する問題