Mysql a des fonctions intégrées pour manipuler le XML. Il s'agit respectivement des fonctions ExtractValue() et UpdateXML().
Syntaxe :
EXTRACTVALUE (fiedname, XPathstring);
Le premier paramètre : fiedname est au format String, qui est le nom du champ dans la table. Le deuxième paramètre : XPathstring (chaîne au format XPath), si vous. ne comprenez pas la syntaxe XPath, vous pouvez trouver des tutoriels sur Internet. Fonction : Renvoie la chaîne contenant la valeur interrogée à partir du XML cible
UPDATEXML (fiedname, XPathstring, new_value) ; Le premier paramètre : fiedname est au format String, qui est le nom du champ dans la table. : XPathstring (chaîne au format XPath)
Le troisième paramètre : new_value, format String, remplace les données qualifiées trouvées Fonction : modifie la valeur du nœud qualifié dans le document
Tutoriel vidéo MySQL recommandé associé : "Tutoriel MySQL"
1. Nous créons d'abord une table de test.
CREATE TABLE `testtable` ( `testxml` text ) ENGINE=InnoDB DEFAULT CHARSET=latin1
2. Ajoutez ensuite un enregistrement à la table de test. Enregistré au format XML.
3 Nous utilisons d'abord la fonction EXTRACTVALUE pour connaître le contenu du nœud nommé Zhang San. Vous pouvez voir le contenu du nœud Zhang San que nous avons trouvé dans la zone de sortie ci-dessous. Le format XPath est le suivant :
extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'
4. . Nous avons maintenant le nœud de classe de requête Les valeurs de tous les nœuds de nom ci-dessous.
extractvalue(testxml,'/Student/Class/Name'
5. Ensuite, nous utilisons la fonction updatexml pour modifier le contenu du nœud XML.
extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'), Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename') ,把zhangsan节点内容换为updatename。
6 D'après les résultats ci-dessus, nous pouvons voir que la structure XML a un nœud de nom de moins après avoir utilisé updatexml. . Il nous suffit d'ajouter la valeur mise à jour au nœud lors du remplacement.
extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'), Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename ')
7. Utilisez l'instruction Update pour mettre à jour le contenu de la base de données.
UPDATE testtableSET testxml= Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','<Name>updatename</Name>')
Notes
À l'aide de UpdateXml, nous venons de modifier le contenu du champ de recherche, Le la base de données n'est pas mise à jour. Si vous devez mettre à jour la base de données, vous devez la mettre à jour avec l'instruction de mise à jour
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!