0

postgresql で、xml データを入力として取得し、すべてのノードを取得し、work 'key' で終わるノードに対して関数を呼び出す関数を作成する際に問題があります。例では、私はしなければなりません:

function readdata(data xml) RETURNS VOID AS $$
INSERT INTO data_table SELECT FROM xpath('//text()',data)

xml の一部は次のようになります。

< node1>sometext< /node1>
< node2_key>anyvalue< /node2_key>
< node3_key>integer< /node3_key>
< node4>anyvalue< /node4>

check_val('node2',valueof node2_key )しかし、データパラメータから選択するときのように関数を呼び出す方法がわかりません。

私が達成しようとしているのは、myfunction の SELECT で、「キー」という単語で終わらないときにノードの値が得られ、それで終わるノードの場合、check_val 関数の結果が得られることです。

postgresql 9.1でそれを行う方法はありますか? コードの例に感謝します。

4

1 に答える 1

1

Postgresについてはわかりませんが、名前がで終わるすべてのノード(要素)のテキストを取得するXPathkeyは次のとおりです。

//*[string-length(name())>2 and substring(name(),string-length(name())-2,3)='key']/text()

名前がで終わらないすべてのノード(要素)のテキストを取得するXPathkeyは次のとおりです。

//*[string-length(name())<3 or substring(name(),string-length(name())-2,3)!='key']/text()
于 2012-05-25T15:16:31.980 に答える