1

次の問題があります。baseX をデータベースとして使用して、xquery ファイル内の要素の値を置き換えたいと考えています。xquery コードは次のとおりです。

    let $db := doc('update.xml')

replace value of node $db//elem with 'haha'

return <result> {$db//elem/text()} </result>

xml ドキュメントには、次の要素が含まれています。

<?xml version="1.0" encoding="ISO-8859-1"?>
<root xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
<check>
    <ok>
        <elem>test</elem>
        <help></help>
    </ok>
</check>
</root> 

この xquery を実行するたびに、次のようなエラーがスローされます。

Expecting 'where', 'order' or 'return' expression

要素内のテキスト「test」を「haha」に置き換えるには、どうすればよいですか?このコード行だけを使用すると機能しますが、URL-Parameter を読み取る必要があるため、"replace...." 行を除いて、さらに多くのコード行が必要です!

4

1 に答える 1

1

letupdate ステートメントを直接含まない可能性がある flwor-expression を開始します。returnこれら 2 つの間に a を配置する必要があります。

let $db := doc('update.xml')
return
  replace value of node $db//elem with 'haha'

任意の計算を行うこともできますが、クエリによって出力が返されないようにしてください。

更新ステートメントを使用し、同時に結果を返す方法はありません。

于 2012-11-28T10:04:44.670 に答える