wie eine element-variable in xpath ein xquery -

Ich bin mit dem folgenden xml-Dokument

<users>
  <user>
    <userid>sony</userid>
    <password>sonypass</password>
  </user>
</users>

Bin ich zu schreiben versucht, eine gemeinsame xquery update der user-Daten durch die übergabe der Variablen - a) doc_name (name des xml-Dokuments) b)Benutzer-id (userid) des Benutzers, dessen Infos werden aktualisiert) c) update_node (element aktualisiert werden, z.B. Passwort) d) neuer_wert (neue Wert des Elements aktualisiert werden, z.B. sonynewpass). Ich bin nicht sicher, wie die element-variable in der xpath-Ausdruck zu tun. Ich habe versucht, die folgenden:

declare variable $doc_name as xs:string external;
declare variable $userid as xs:string external;
declare variable $update_node as xs:element() external;
declare variable $new_value as xs:string external;
let $users_doc := doc($doc_name)/users

let $old_node := $users_doc/user[userid=$userid]/{$update_node}

return replace value of node $old_node with $new_value

Aber diese Abfrage wirft eine [XPST0003] Erwartet, Pfad-Fehler in Zeile 7 ($old_node := $users_doc/user[userid=$userid]/{$update_node})

Gibt es eine Möglichkeit, um ein element zu verwenden Variablen in xpath ?

Dank,
Sony

InformationsquelleAutor sony | 2010-11-14

Schreibe einen Kommentar