0

特定のブロック(ブロック?文字列?私はこれが初めてです...)のXMLドキュメントを検索し、残りの...ブロックを返す方法を見つけようとしていますか?現在、ハンドラーとして XStream を使用していますが、これほど具体的なことを行う方法が見つかりませんでした。

コードのサンプルを次に示します (Times 500,000):

<conversation>
    <input>HELLO</input>
    <response>
        <text>HELLO MATE</text>
        <hits>2</hits>
    </response>
    <response>
        <text>HOLA</text>
        <hits>1</hits>
    </response>
</conversation>

<conversation>
    <input>HOW ARE YOU</input>
    <response>
        <text>I AM GOOD</text>
        <hits>4</hits>
    </response>
    <response>
        <text>IM FINE</text>
        <hits>5</hits>
    </response>
</conversation>

入力 (例: HOW ARE YOU) を検索し、ヒット数が最も多い応答ブロックを返します。これは簡単な操作だと思いますが、検索しても何も見つかりませんでした。ありがとう仲間!

4

1 に答える 1

0

XQuery 1.0 では、これは次のようになります。

declare variable $search as external;
let $c := //conversation[$input eq $search]
for $r in $c/response
where $r/hits = max($c/response/hits)
return $r
于 2013-09-21T08:32:58.667 に答える