Java xml文件导入到数据库中

xml文件格式或者xml字符串格式导入到数据库中(项目实战)

平常我们导入文件的操作没少做,那么xml格式的该怎么做呢?网上我看到的都是测试型的教程,本篇是项目实战中使用的,更加容易加深理解和运用!

首先确保是xml文件或xml字符串格式,文件中要有 <?xml version ="1.0" encoding="gb2312" ?>之类的文件头,这样才能识别是xml文档,其次里面构造要符合规范,比如一级和二级标题头

<?xml version ="1.0" encoding="gb2312" ?>
//一级
<Train>
//二级
<Record>
<System>xxx内容</System>
</Record>
</Train>

也可以多数据添加:

<?xml version ="1.0" encoding="gb2312" ?>
//一级
<Train>
//二级
<Record1>
<System>xxx内容</System>
</Record1>

<Record2>
<System>xxx内容</System>
</Record2>
</Train>

声明一下,System这字段对应数据库里的字段,Train,Record这个无所谓,xxx内容都是String类型的。

以上是文件格式的,字符串格式就是将文件里的所有东西复制成文本,不能缺少任何一个,包括文件头。

不多哔哔,上代码!

这是正常的一个API接口,参数是文本或文件,我写的是优先文本,你们可以自己随意,两个单独或者顺序自己定义。

public int AnalysisXmlDomByString(String xmlDoc,MultipartFile file) {
 BufferedReader br = null;
   if (StringUtils.isEmpty(xmlDoc)&&!file.isEmpty()) {
//            获取HTTP请求的输入流,然后建立一个BufferedReader
try{
    
           br   = new BufferedReader(new InputStreamReader(file.getInputStream(), "GBK"));
            String buffer = null;
//            存放请求内容
            StringBuffer xml = new StringBuffer();
            while ((buffer = br.readLine()) != null) {
//                再页面中显示读取到的请求参数
                xml.append(buffer);
            }
            br.close();
//            XML转化为字符串
            xmlDoc = xml.toString();
        }
        }catch(IOException e){
            e.printStackTrace();
        }finally{
            if(br!=null){
            try{
                br.close();
                }
                catch(IOException e1){
                    e1.pritStackTrace();
                }
            }
        }
        }else if(StringUtils.isEmpty(xmlDoc)&&file.isEmpty()){
        throw new Exception("内容不能为空!")
        }
        
        List<Map<String, Object>> list = new ArrayList<>();    
        
        StringReader read = new StringReader(xmlDoc);
//        创建新的输入源SAX解析器将使用InputSource 对象来确定如何读取XML输入
        InputSource source = new InputSource(read);
//        创建一个新的SAXBuilder
        SAXBuilder sb = new SAXBuilder();
//        通过输入源构造一个Document并取根的元素
        Element root = sb.build(source).getRootElement();
//        获取根元素所有子元素的集合
        List<Element> children = root.getChildren();
//        获得XML中的命名空间(XML未定义可不写)
        Namespace ns = root.getNamespace();
        Element e = null;
//        循环依次得到子元素
        for (int i = 0; i < children.size(); i++) {
            e = (Element) children.get(i);
	   Map<String, Object> map = new HashMap<>();
            String system = e.getChild("System", ns).getText();
            map.put("system" , system);
  		 list.add( map);
        }
    //然后遍历list里的数据添加到数据库即可
}

这里提醒一下,一定要心细,大小写不能错误,失败肯定会有的,多查找原因就行了,奥里给!!!

以上就是xml格式导入数据库,大佬看到错误请指出错误,谢谢!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值