使用dom4j读取xml文件

2020-06-23  本文已影响0人  Yluozi

.xml文件与.config文件都可以使用dom4j读取,此两者只是显示的格式有区别(config呢就相当于规范化后)。
公司使用xml文件存储数据支持国产化,但是在用到mysql的项目时需要实现导入导出的功能支持。

xml文件样例

<?xml version="1.0" encoding="UTF-8"?>
<Wrapper xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <items>
    <field_mapp>
      <id>1082</id>
      <mappInfoId>94</mappInfoId>
      <field_name>篇名</field_name>
      <entity_name>title</entity_name>
      <adapt_name></adapt_name>
      <status xsi:nil="true"/>
    </field_mapp>
    <field_mapp>
      <id>1084</id>
      <mappInfoId>94</mappInfoId>
      <field_name>作者</field_name>
      <entity_name>author</entity_name>
      <adapt_name></adapt_name>
      <status xsi:nil="true"/>
    </field_mapp>
  </items>
</Wrapper>

引入dom4j依赖

        <!--引入dom4j:解析xml文件使用的包-->
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
        </dependency>

读取xml接口


public class handleXMLService {
    /**
     * @Description: 读取xml文件,分解字段
     * @param url    xml文件位置
     * @return: 返回
     * @Author: ylz
     * @Date: 2020/6/16
     */
    public JsonResult readXML(String url) throws Exception {
        SAXReader sax=new SAXReader();//创建一个SAXReader对象
        File xmlFile=new File(url);//根据指定的路径创建file对象
        Document document=sax.read(xmlFile);//获取document对象,如果文档无节点,则会抛出Exception提前结束
        Element root=document.getRootElement();//获取根节点
        //迭代器遍历父级
        Iterator itFa = root.elementIterator();
        while (itFa.hasNext()) {
            Element elementFa = (Element) itFa.next();
            System.out.println(elementFa.getName());

            //迭代器遍历子集
            Iterator itSon = elementFa.elementIterator();
            while (itSon.hasNext()){
                Element elementChild = (Element) itSon.next();
                System.out.println("节点名:"+elementChild.getName());
                System.out.println("节点子属性mappInfoId值:"+elementChild.elementText("mappInfoId"));
                //stuChild.getStringValue();//直接获取节点全部的属性值
            }
        }
        return JsonResult.success();
    }

}

测试单元

图片.png

结果

图片.png

①中是父级的数据
②中是子级的数据
读取xml文件也可用其他方法实现,
dom4j内也有其他方法,具体细查。

友情·连接:
https://www.cnblogs.com/mzywucai/p/11053424.html
https://www.w3school.com.cn/xmldom/dom_element.asp

上一篇 下一篇

猜你喜欢

热点阅读