Cách đọc, Ghi XML Trong Java Với DOM Parser - Deft Blog
Có thể bạn quan tâm
Mục lục
- 1 Đọc file XML
- 2 Ghi file XML
XML là một định dạng file phổ biến hiện nay, do vậy các Java developer chắc hẳn có lúc cần phải xử lý các file XML để rút trích dữ liệu, hay tạo ra các tài liệu XML theo định dạng được yêu cầu. Trong bài viết này chúng ta sẽ cùng tìm hiểu cách đọc file XML trong Java sử dụng DOM XML parser.
Đọc file XML
Mặc định Java đã hỗ trợ đọc file XML thông qua DOM XML parser. DOM XML parser sẽ phân tích dữ liệu trong file XML và tải toàn bộ chúng vào bộ nhớ. Sau đó mô hình hóa nó theo cấu trúc “TREE” để để dàng duyệt các phần tử trong đó.
Vì DOM XML parser tải lên toàn bộ nội dung của XML để xử lý do đó chúng ta nên cân nhắc khi xử lý một file XML có dung lượng lớn.
Giả sử có file input.xml sau cần đọc
<?xml version = "1.0"?> <class> <student rollno = "400"> <firstname>Nguyen</firstname> <lastname>Hai</lastname> <nickname>deft</nickname> <marks>12</marks> </student> <student rollno = "103"> <firstname>Nguyen</firstname> <lastname>Tu</lastname> <nickname>vinni</nickname> <marks>95</marks> </student> <student rollno = "593"> <firstname>Le</firstname> <lastname>dung</lastname> <nickname>jazz</nickname> <marks>90</marks> </student> </class>Sử dụng DOM XML theo đoạn code mẫu sau
import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.w3c.dom.Node; import org.w3c.dom.Element; public class Main { public static void main(String[] args) { try { File inputFile = new File("input.xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(inputFile); doc.getDocumentElement().normalize(); System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); NodeList nList = doc.getElementsByTagName("student"); System.out.println("----------------------------"); for (int temp = 0; temp < nList.getLength(); temp++) { Node nNode = nList.item(temp); System.out.println("\nCurrent Element :" + nNode.getNodeName()); if (nNode.getNodeType() == Node.ELEMENT_NODE) { Element eElement = (Element) nNode; System.out.println("Student roll no : " + eElement.getAttribute("rollno")); System.out.println("First Name : " + eElement .getElementsByTagName("firstname") .item(0) .getTextContent()); System.out.println("Last Name : " + eElement .getElementsByTagName("lastname") .item(0) .getTextContent()); System.out.println("Nick Name : " + eElement .getElementsByTagName("nickname") .item(0) .getTextContent()); System.out.println("Marks : " + eElement .getElementsByTagName("marks") .item(0) .getTextContent()); } } } catch (Exception e) { e.printStackTrace(); } } }Output:
Root element :class ---------------------------- Current Element :student Student roll no : 400 First Name : Nguyen Last Name : Hai Nick Name : deft Marks : 12 Current Element :student Student roll no : 103 First Name : Nguyen Last Name : Tu Nick Name : vinni Marks : 95 Current Element :student Student roll no : 593 First Name : Le Last Name : dung Nick Name : jazz Marks : 90Ghi file XML
Để ghi file XML sử dụng DOM XML parser, theo dõi đoạn mã sau:
import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; public class Main { public static final String xmlFilePath = "output.xml"; public static void main(String argv[]) { try { DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentFactory.newDocumentBuilder(); Document document = documentBuilder.newDocument(); // root element Element root = document.createElement("company"); document.appendChild(root); // employee element Element employee = document.createElement("employee"); root.appendChild(employee); // set an attribute to staff element Attr attr = document.createAttribute("id"); attr.setValue("10"); employee.setAttributeNode(attr); //you can also use staff.setAttribute("id", "1") for this // firstname element Element firstName = document.createElement("firstname"); firstName.appendChild(document.createTextNode("Nguyen")); employee.appendChild(firstName); // lastname element Element lastname = document.createElement("lastname"); lastname.appendChild(document.createTextNode("Hai")); employee.appendChild(lastname); // email element Element email = document.createElement("nickname"); email.appendChild(document.createTextNode("deft")); employee.appendChild(email); // department elements Element department = document.createElement("marks"); department.appendChild(document.createTextNode("95")); employee.appendChild(department); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource domSource = new DOMSource(document); StreamResult streamResult = new StreamResult(new File(xmlFilePath)); transformer.transform(domSource, streamResult); System.out.println("Done creating XML File"); } catch (ParserConfigurationException pce) { pce.printStackTrace(); } catch (TransformerException tfe) { tfe.printStackTrace(); } } }Output: output.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <company> <employee id="10"> <firstname>Nguyen</firstname> <lastname>Hai</lastname> <nickname>deft</nickname> <marks>95</marks> </employee> </company>Nguồn
https://mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/
Từ khóa » đọc File Xml Trong Java
-
Java XML - Đọc XML Trong Java - VietTuts
-
Java DOM Parser - đọc, Tạo, Sửa Tài Liệu XML - VietTuts
-
Cách Đọc File XML Java ( DOM Parser )
-
Java: Java DOM Parser - Đọc, Tạo, Sửa Tài Liệu XML - V1Study
-
Hướng Dẫn đọc File Xml Trong Java
-
Đọc File Xml Trong Java. - YouTube
-
Parse File XML Sử Dụng XPath Trong Java - Viblo
-
Cách đọc, Ghi XML Trong Java Với DOM Parser - Deft Blog - OECC
-
Đọc File Xml Trong Java
-
Đọc Tập Tin XML Sử Dụng DOM Trong Java
-
Tạo Mới Tập Tin XML Sử Dụng DOM Trong Java - Hướng Dẫn Java
-
Phân Tích XML Bằng Cách Sử Dụng Mô Hình DOM Trong Java
-
3 Cách đọc File Trong Java Phổ Biến Nhất - NIIT - ICT Hà Nội
-
đọc Ghi File Xml Trong Java - 123doc