DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // 使用工廠來實例化一個構造Document的對象 DocumentBuilder builder = factory.newDocumentBuilder(); // 利用DocumentBuilder來構造一個Document對象 Document document = builder.parse(filename); // 獲取Document文檔的根節點對象 Element root = document.getDocumentElement(); // 通過根節點,獲取到根節點下面的所有二級子節點 NodeList nodeList = root.getChildNodes(); // 遍歷子節點,獲取內部的每一個節點 for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); // 獲取每個末端階段的文本值和節點名稱,將其存入到Map對象中 map.put(item.getNodeName(), item.getTextContent()); list.add(map); }
1 // 實例化一個xml pull解析的工廠 2 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 3 // 實例化一個xml pull解析對象 4 XmlPullParser pullParser = factory.newPullParser(); 5 // 將xml文件作為流傳入到inputstream 6 BufferedInputStream bis = new BufferedInputStream( 7 new FileInputStream("customers.xml")); 8 9 // xml解析對象接收輸入流對象10 pullParser.setInput(bis, "utf-8");11 12 int event = pullParser.getEventType();13 List<Map<String, Object>> list = null;14 Map<String, Object> map = null;15 16 while (event != XmlPullParser.END_DOCUMENT) {17 switch (event) {18 case XmlPullParser.START_DOCUMENT:19 list = new ArrayList<>();20 break;21 case XmlPullParser.START_TAG:22 if ("customer".equals(pullParser.getName())) {23 map = new HashMap<String, Object>();24 }25 if (pullParser.getName().equals("name")) {26 map.put("name", pullParser.nextText());27 }28 if (pullParser.getName().equals("tel")) {29 map.put("tel", pullParser.nextText());30 }31 // if (pullParser.getName().equals("email")) {32 // map.put("email", pullParser.nextText());33 // }34 break;35 case XmlPullParser.END_TAG:36 if (pullParser.getName().equals("customer")) {37 list.add(map);38 }39 break;40 }41 event = pullParser.next();42 }
新聞熱點
疑難解答