Modification de documents XML avec BaseX
Accès aux documents XML dans la base de données
Fonction | Description |
---|---|
| Retourner un ou plusieurs documents trouvés dans le chemin Remarque : |
| Retourner le document Erreur si zéro/plusieurs documents trouvés. |
Attention : Une différence
doc("myDataBase/myFile.xml")
et doc("path/to/myFile.xml")
fonctionnent des manières différentes :
doc("myDataBase/myFile.xml")
: On cherche le document XML stocké dans la base de données sans passer par le file system.doc("path/to/myFile.xml")
: On va passer par file system pour créer et retourner un nouveau nœud XML en mémoire.ATTENTION : il ne sera pas ajouté dans une base de données automatiquement.
XQuery Update
Appelée XQuery Update Facility, cette extension permet de modifier des documents XML et données.
Il y a 5 opérations possibles :
Opération | Explication |
---|---|
| Insère un nœud |
| Supprime un nœud |
| modifier le contenu d'un nœud |
| remplacer un nœud par un autre noeud |
| renommer un nœud sans toucher à ses attributs |
[item]
est un noeud XML[location]
est une expression en XPath
Remarque : Mettre à jour des documents XML
Les mises à jour ne sont pas répercutées par défaut dans le fichier XML. Ceci se justifie par le fait qu'il s'agisse d'une base de données en mémoire.
Solutions :
Si on accéder le document par la base de données (
doc("myDataBase/myFile.xml")
ou
) :collection("myDataBase/myFile.xml")
La commande
EXPORT
[path]
ou par GUI : Database → ExportSi on accéder le document par file sysetm (
doc("path/to/myFile.xml")
oucollection("path/to/myFile.xml")
) :On règle le
WRITEBACK
àTRUE
. Les modifications seraient à jours automatiquement.ATTENTION : dans ce cas là, des modifications ne sont pas visibles dans l'interface graphique, parce que ce document XML n'est pas ajouté dans une base de données, il existe seulement en mémoire.