本文共 1314 字,大约阅读时间需要 4 分钟。
MySQL存储过程 — 解析 XML 数据并实现插入操作
一、概述:
最近在做项目的过程中,需要利用MySQL存储过程 解析 XML数据并进行插入操作,因此就学习了下。MySQL 解析 XML 的思路就是使用 MySQL自带的 extractvalue ()函数 并根据传入XPath路径来获取相应的值,这个思路和他其他的语言的获取XML节点值差不多,只是写法不同。(更好的阅读体验,请移步我的)
二、代码实现:
1,待解析的XML字符串:
155728471173781 存储过程 安徽 背景 1557284711889
2,存储过程:
CREATE DEFINER=`root`@`localhost` PROCEDURE `addcustomer`(IN ucs_info VARCHAR(300))BEGIN #声明需要用到的变量 DECLARE cId BIGINT; DECLARE cName VARCHAR(200); DECLARE location VARCHAR(200); DECLARE remark VARCHAR(200); DECLARE createtime VARCHAR(200); #获取值 SET @cId = extractvalue(ucs_info,'/cInfo/cId'); SET @cName = extractvalue(ucs_info,'/cInfo/cName'); SET @location = extractvalue(ucs_info,'/cInfo/location'); SET @remark = extractvalue(ucs_info,'/cInfo/remark'); SET @createtime = extractvalue(ucs_info,'/cInfo/createtime'); #插入数据库 INSERT INTO customer(c_id,c_name,location,remark,c_info) VALUES(@cId,@cName,@location,@remark,ucs_info ); #显示出来,这里只是判断读取的是否正确select @cId cId, @cName cName, @location location ,@remark remark,FROM_UNIXTIME(@createtime) createtime;END
3,调用存储过程 :
call addcustomer("待解析的XML字符串")
4,结果:
5,总结:
MySQL存储过程解析XML的流程就是:
1,先建立一个存储过程,参数是待解析的XMl;
2, 调用 extractvalue() 函数,传入 XML 字符串 以及 节点路径。(节点路径的写法 采用的是 XPath,可自行搜索。)
转载地址:http://lyajn.baihongyu.com/