Cách đọc, ghi XML trong Java với DOM Parser – Deft Blog

Qua bài viết này Nhất Việt Edu xin chia sẻ với các bạn thông tin và kiến thức về đọc file xml trong java hay nhất được tổng hợp bởi chúng tôi

Video đọc file xml trong java

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 : 90

Ghi 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/

Bản quyền nội dung thuộc Nhất Việt Edu

Bài viết liên quan

Cách tìm kiếm sản phẩm trên TikTok Shop Hot Trend
5 Cách tìm kiếm sản phẩm trên TikTok Shop Hot Trend 2023
Trí tuệ nhân tạo AI là gì? Ứng dụng như thế nào trong cuộc sống?
Trí tuệ nhân tạo AI là gì? Ứng dụng như thế nào trong cuộc sống?
So Sánh Các Loại Hình Công Ty Theo Luật Doanh Nghiệp 2020
So Sánh Các Loại Hình Công Ty Theo Luật Doanh Nghiệp 2020
Đại sứ truyền thông là gì và có ảnh hưởng như thế nào với doanh
Đại sứ truyền thông là gì và có ảnh hưởng như thế nào với doanh
Cloud Storage – Lưu trữ đám mây là gì? Tính năng và lợi ích khi sử
Cloud Storage – Lưu trữ đám mây là gì? Tính năng và lợi ích khi sử
Cấu Trúc và Cách Dùng từ Respond trong câu Tiếng Anh
Cấu Trúc và Cách Dùng từ Respond trong câu Tiếng Anh
App Momo Bảo Trì Đến Khi Nào, Thông Báo Bảo Trì Tính Năng
App Momo Bảo Trì Đến Khi Nào, Thông Báo Bảo Trì Tính Năng
Branding là gì? Tìm hiểu đầy đủ và chi tiết về Branding – Mona Media
Branding là gì? Tìm hiểu đầy đủ và chi tiết về Branding – Mona Media