1、首先我们创建一个测试的表。CREATETABLE`testtable`(`testxml`text)ENGINE=InnoDBDEFAULTCHARSET=latin1
2、然后为测试表添加一条记录。记录为xml格式。
3、我们首先使用EXTRACTVALUE函数查出名字为张三节点内容。可以在下面的输出框看见我们找到的张三节点内容,xpath格式如下extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'
4、现在我们有查询class节点下所有name节点的值。extractvalue(testxml,'/Student/Class/Name'
5、接下来我们用updatexml函数来改变xm盟敢势袂l的节点内容。extractvalue(testxml,'/Stude荏鱿胫协nt/Class/Name[self:text()="zhangsan"]'), Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename'),把zhangsan节点内容换为updatename。
6、从上面的结果中看到xml结构在我们使用updatexml后,少了一个name节点。我们只需要替换时把趑虎钾缫更新值加上节点即可。extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'), Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','<Name>updatename</Name>')
7、使用Update语句更新数据库内容。UPDATE testtableSET testxml= Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','<Name>updatename</Name>')