ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## # 第一步:根据文件名字找到文件所在文件的类路径 private String getFile(String fileName){ String path = null; try{ path = this.getClass().getClassLoader().getResource(fileName).getPath(); logger.info("parse success"); }catch (Exception e){ logger.error("parse error"); } return path; } ## 第二步:解析文件方法指定的容器内 public static void parse(File file,List<Bean> contaier)throws Exception{ if(file.isDirectory()){ SAXReader reader = new SAXReader(); File[] listFiles =file.listFiles(); for(int i = 0;i < listFiles.length;i++){ if(listFiles[i].getName().endsWith(".xml")) { Document document = reader.read(listFiles[i]); parseXmlDatas(document.getRootElement().elements(), contaier, "user-permission-grade"); }else{ continue; } } } } 详细解析 首先判断该文件传入过来是否是文件夹,如果是文件夹,建立解析器,通过文件夹获取到下面的文件,然后遍历文件(首先判断该文件的后缀名是否已.xml),如果是已.xml结束,解析文件里面的内容 通过文档对象拉到文档对象(其实文档对象就是xml里面的内容),然后解析文件里面的内容 ## 第三步:解析文件里面的内容 public static void parseXmlDatas(List<Element> elementList,List container,String firstElements){ for(Element dataElement: elementList){ if(dataElement.getName().equals(firstElements)){ List<Element> dataList = dataElement.elements(); parseXmlData(dataElement.elements(),container); } } } 详细解析 拿到文件对象,第一步遍历标签,判断该根元素是否已指定的元素开始,如果是解析根元素下面的子元素,然后解析数据 public static void parseXmlData(List<Element> elementsList,List<Bean> container){ Bean bean = new Bean(); for(Element data:elementsList){ String name = data.getName(); if("name".equalsIgnoreCase(name)){ bean.setName((String)data.getData()); }else if("value".equalsIgnoreCase(name)){ System.out.println(name); bean.setValue(Integer.parseInt((String)data.getData())); } //获取属性 //data.attgit ributeValue("id") } container.add(bean); } 详细解析 遍历元素,获取元素所在文件中的标签的名字,然后对标签里面的内容进行封装成类对象。