Sto provando a modificare il valore di diversi nodi in un file XML molto grande caricato in memoria da un modulo Web.Modifica il valore XML in memoria con xQuery
Il file si ottiene in questo modo:
let $file := xdmp:get-request-field("xml_to_upload")
Quindi, come si può vedere il file è in memoria.
Ora, ho bisogno di cambiare il valore di migliaia di nodi, e finora non sono stato in grado di farlo in modo ottimale.
Qualche idea?
Alcune delle cose che ho tryied finora:
let $auxVar :=
if($fileStructureIsValid) then
(
for $currentNode in xdmp:unquote($file)//ID
let $log := xdmp:log(fn:concat("newNodeValue", ": ", mem:replace($currentNode, element ID{ fn:concat($subject, "-", fn:data($currentNode)) })))
return fn:concat($subject, "-", fn:data($currentNode))
)
else
(
)
La biblioteca Mem è un'usanza scaricato uno.
Per completezza, una terza alternativa è di applicare una trasformazione XSLT al documento in memoria. – ehennum