1

2 つの XPathf(x)g(y)、およびいくつかの XML がありますx

x = <example>
  <a>
    <number>1</number>
  </a>
  <b>
    <letter>A</letter>
  </b>
  <c>
    <number>2</number>
  </c>
</example>

f(x) = /example/*

g(y) = /number|/letter

h(x)XQuery でどのように記述すればh(x) = g(f(x))よいg(x)でしょうか? g(x)事前にわからないので、変更することはできません。必要に応じて変更できf(x)ます。XQuery は Oracle クエリの一部であるため、これらすべてを XQuery で実行する必要があります。

h(x) = g(f(x)) = $data/example/*...?

4

2 に答える 2

1

私はその質問について混乱しているかもしれませんが、私がそれを正しく理解していれば、答えは

let $f := FFFF return $f/(GGGG)

ここで、FFFF と GGGG は f(x) と g(y) に対応する式です。

しかし、私はあなたがあなたの例を間違っていると仮定しています.

g(y) = /number|/letter

あなたが意味した

g(y) = number|letter

つまり、絶対的な選択ではなく、相対的な選択です。

于 2012-06-04T17:22:09.050 に答える
0

1 つの方法は、文字列を連結することです。

h(x, g_postfix) = '$data/example/*' + g_postfix

明らかに '|' の処理 これには、分割、連結、および結合が必要です。

もう 1 つの方法は、「g」関数の名前を渡し、動的 ​​SQL を作成して、f() によって返されるノード リストのループで実行することです。

于 2012-06-04T14:59:55.220 に答える