web 访问实现
@RestController @RequestMapping("/file") public class xmlController { @Resource private JsonOneService jsonOneService; String pl = "/Users/zhangcheng/Downloads/pl-PL/messages.xml"; String tr = "/Users/zhangcheng/Downloads/tr-TR/messages.xml"; String ru = "/Users/zhangcheng/Downloads/ru-RU/messages.xml"; String hant = "/Users/zhangcheng/Downloads/zh-TW/messages.xml"; @GetMapping("/xml") public String page(String name) throws ParserConfigurationException, IOException, SAXException { String filePath1 = name; name = name+"messages_es.properties"; List<String> stringList = new ArrayList<>(); stringList.add(pl); stringList.add(tr); stringList.add(ru); stringList.add(hant); int num = 0; for(String path :stringList){ Map<String,String> map = new LinkedHashMap<>(); StringBuffer message = new StringBuffer(); File file = new File(path); // 创建一个DocumentBuilderFactory对象 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // 使用工厂对象创建一个DocumentBuilder对象 DocumentBuilder builder = factory.newDocumentBuilder(); // 使用DocumentBuilder对象解析XML文件并得到一个Document对象 Document document = builder.parse(file); // 获取根元素 Element rootElement = document.getDocumentElement(); // 获取所有<row>元素 NodeList rowElements = rootElement.getElementsByTagName("row"); // 创建一个Languages对象 Languages languages = new Languages(); // 创建一个List来存储Language对象 List<Language> languageList = new ArrayList<>(); // 遍历每个<row>元素 for (int i = 0; i < rowElements.getLength(); i++) { Element rowElement = (Element) rowElements.item(i); // 创建一个Language对象 Language language = new Language(); // 获取<row>元素下的<field>元素 NodeList fieldElements = rowElement.getElementsByTagName("field"); // 遍历每个<field>元素 for (int j = 0; j < fieldElements.getLength(); j++) { Element fieldElement = (Element) fieldElements.item(j); String fieldName = fieldElement.getAttribute("name"); String fieldValue = fieldElement.getTextContent(); // 根据fieldName设置Language对象的属性值 switch (fieldName) { case "id": language.setId(Long.parseLong(fieldValue)); break; case "key_name": language.setKeyName(fieldValue); break; case "value_name": language.setValueName(fieldValue); break; default: break; } } map.put(language.getKeyName(),language.getValueName()); } Properties props = new OrderedProperties(); props.load(new FileReader(name)); // 将properties转换为LinkedHashMap Map<String, String> data = new LinkedHashMap<>();; for (String key : props.stringPropertyNames()) { if(map.get(key)!=null){ data.put(key, map.get(key)); message.append(key).append("=").append(map.get(key)).append("\n"); } } String filePath = ""; if(num==0){ filePath = filePath1+"messages_pl.properties"; } if(num==1){ filePath = filePath1+"messages_tr.properties"; } if(num==2){ filePath = filePath1+"messages_ru.properties"; } if(num==3){ filePath = filePath1+"messages_hant.properties"; } Properties properties = new Properties(); // 将Map中的数据写入Properties对象 properties.putAll(data); try (FileOutputStream output = new FileOutputStream(filePath)) { for (Map.Entry<String, String> entry : data.entrySet()) { String line = entry.getKey() + "=" + entry.getValue() + System.lineSeparator(); output.write(line.getBytes()); } } catch (IOException e) { e.printStackTrace(); } num++; } return String.valueOf(""); } // "/Users/zhangcheng/Downloads/服务器-新增语言/pl-PL/enJson.xml"
// 读取xml 文件 public static void main(String[] args) throws Exception { File file = new File("/Users/zhangcheng/Downloads/服务器-新增语言/pl-PL/enJson.xml" ); // 创建一个DocumentBuilderFactory对象 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // 使用工厂对象创建一个DocumentBuilder对象 DocumentBuilder builder = factory.newDocumentBuilder(); // 使用DocumentBuilder对象解析XML文件并得到一个Document对象 Document document = builder.parse(file); // 获取根元素 Element rootElement = document.getDocumentElement(); // 获取所有<row>元素 NodeList rowElements = rootElement.getElementsByTagName("row"); // 创建一个Languages对象 Languages languages = new Languages(); // 创建一个List来存储Language对象 List<Language> languageList = new ArrayList<>(); // 遍历每个<row>元素 for (int i = 0; i < rowElements.getLength(); i++) { Element rowElement = (Element) rowElements.item(i); // 创建一个Language对象 Language language = new Language(); // 获取<row>元素下的<field>元素 NodeList fieldElements = rowElement.getElementsByTagName("field"); // 遍历每个<field>元素 for (int j = 0; j < fieldElements.getLength(); j++) { Element fieldElement = (Element) fieldElements.item(j); String fieldName = fieldElement.getAttribute("name"); String fieldValue = fieldElement.getTextContent(); // 根据fieldName设置Language对象的属性值 switch (fieldName) { case "id": language.setId(Long.parseLong(fieldValue)); break; case "key_name": language.setKeyName(fieldValue); break; case "value_name": language.setValueName(fieldValue); break; default: break; } } // 将Language对象添加到List中 languageList.add(language); } // 将List设置到Languages对象中 languages.setLanguages(languageList); System.out.println(languageList); } }
04-18
9700
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
03-27
6453
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)