Tạo Mới Tập Tin XML Sử Dụng DOM Trong Java - Hướng Dẫn Java
Có thể bạn quan tâm
Trong bài viết trước, chúng ta đã cùng tìm hiểu làm thế nào để đọc được một tập tin XML sử dụng DOM trong Java. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo mới tập tin XML sử dụng DOM các bạn nhé!
Các bước để tạo mới một tập tin XML sử dụng DOM bao gồm:
- Dùng đối tượng DocumentBuilder để định nghĩa nội dung của tập tin XML
- Dùng đối tượng Transformer để ghi tập tin XML xuống ổ đĩa.
Trong bài viết này, chúng ta sẽ đi vào ví dụ cụ thể để tạo tập tin XML có nội dung như sau:
Java <?xml version="1.0" encoding="UTF-8" standalone="no"?> <students> <student n0='1'> <name>John</name> <code>12345</code> <age>19</age> </student> </students>12345678 | <?xml version="1.0"encoding="UTF-8"standalone="no"?><students><student n0='1'><name>John</name><code>12345</code><age>19</age></student></students> |
Định nghĩa nội dung tập tin XML
Đầu tiên chúng ta sẽ tạo mới một đối tượng Document từ đối tượng DocumentBuilder trước.
Java DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder buider = factory.newDocumentBuilder(); Document doc = buider.newDocument();123 | DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder buider=factory.newDocumentBuilder();Document doc=buider.newDocument(); |
Trong tập tin XML trên, thẻ students là thẻ ngoài cùng nhất, root element. Do đó chúng ta sẽ thêm thẻ này trước.
Java Element students = doc.createElement("students"); doc.appendChild(students);12 | Element students=doc.createElement("students");doc.appendChild(students); |
Bây giờ chúng ta sẽ thêm thẻ student nằm bên trong thẻ students:
Java Element student = doc.createElement("student"); students.appendChild(student);12 | Element student=doc.createElement("student");students.appendChild(student); |
Để thêm thuộc tính n0=”1″ cho thẻ student, chúng ta sẽ sử dụng đối tượng Attr:
Java Attr attr = doc.createAttribute("n0"); attr.setValue("1"); student.setAttributeNode(attr);123 | Attr attr=doc.createAttribute("n0");attr.setValue("1");student.setAttributeNode(attr); |
Bên trong thẻ student chúng ta lại có thêm các thẻ tên (name), mã sinh viên (code) và tuổi (age), nên nhiệm vụ còn lại của chúng ta là tạo 3 Element cho 3 thẻ đó và thêm chúng vào thẻ student mà thôi.
Thẻ name:
Java Element name = doc.createElement("name"); name.appendChild(doc.createTextNode("John")); student.appendChild(name);123 | Element name=doc.createElement("name");name.appendChild(doc.createTextNode("John"));student.appendChild(name); |
Thẻ code:
Java Element code = doc.createElement("code"); code.appendChild(doc.createTextNode("12345")); student.appendChild(code);123 | Element code=doc.createElement("code");code.appendChild(doc.createTextNode("12345"));student.appendChild(code); |
Thẻ age:
Java Element age = doc.createElement("age"); age.appendChild(doc.createTextNode("19")); student.appendChild(age);123 | Element age=doc.createElement("age");age.appendChild(doc.createTextNode("19"));student.appendChild(age); |
Ghi tập tin XML xuống ổ đĩa
Bằng cách sử dụng đối tượng Transformer, chúng ta sẽ ghi nội dung của tập tin xuống ổ đĩa nơi do chúng ta chỉ định.
Đầu tiên chúng ta cần đối tượng Transformer trước:
Java TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer();12 | TransformerFactory transformerFactory=TransformerFactory.newInstance();Transformer transformer=transformerFactory.newTransformer(); |
Trong đối tượng Transformer, nó có một phương thức với tên gọi là transform() với hai tham số là interface Source (được tạo ra từ đối tượng Document chứa nội dung của tập tin XML) và interface Result (chứa thông tin về tập tin XML sau khi được ghi xuống ổ đĩa) để thực hiện việc ghi tập tin XML xuống ổ đĩa.
Chúng ta sẽ tạo đối tượng DOMSource (đối tượng này hiện thực interface Source) để chứa nội dung của tập tin:
Java DOMSource source = new DOMSource(doc);1 | DOMSource source=newDOMSource(doc); |
Và đối tượng StreamResult (hiện thực interface Result) chứa thông tin của tập tin XML:
Java File f = new File("D://students.xml"); StreamResult result = new StreamResult(f);12 | Filef=newFile("D://students.xml");StreamResult result=newStreamResult(f); |
Bây giờ chúng ta có thể gọi phương thức transform() của đối tượng Transformer để thực hiện việc ghi nội dung tập tin xuống ổ đĩa rồi:
Java transformer.transform(source, result);1 | transformer.transform(source,result); |
Đầy đủ code như sau:
Java package com.huongdanjava; import java.io.File; import java.io.IOException; 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; import org.xml.sax.SAXException; public class DomExample { public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, TransformerException { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder buider = factory.newDocumentBuilder(); Document doc = buider.newDocument(); // Tạo thẻ students Element students = doc.createElement("students"); doc.appendChild(students); // Tạo thẻ student Element student = doc.createElement("student"); students.appendChild(student); // Tạo thuộc tính n0=1 Attr attr = doc.createAttribute("n0"); attr.setValue("1"); student.setAttributeNode(attr); // Thêm thẻ name Element name = doc.createElement("name"); name.appendChild(doc.createTextNode("John")); student.appendChild(name); // Thẻ code Element code = doc.createElement("code"); code.appendChild(doc.createTextNode("12345")); student.appendChild(code); // Thẻ age Element age = doc.createElement("age"); age.appendChild(doc.createTextNode("19")); student.appendChild(age); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); File f = new File("E://students.xml"); StreamResult result = new StreamResult(f); transformer.transform(source, result); } }1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | packagecom.huongdanjava; importjava.io.File;importjava.io.IOException; importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.parsers.ParserConfigurationException;importjavax.xml.transform.Transformer;importjavax.xml.transform.TransformerException;importjavax.xml.transform.TransformerFactory;importjavax.xml.transform.dom.DOMSource;importjavax.xml.transform.stream.StreamResult; importorg.w3c.dom.Attr;importorg.w3c.dom.Document;importorg.w3c.dom.Element;importorg.xml.sax.SAXException; publicclassDomExample{ publicstaticvoidmain(String[]args)throwsParserConfigurationException,SAXException,IOException,TransformerException{DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder buider=factory.newDocumentBuilder();Document doc=buider.newDocument(); // Tạo thẻ studentsElement students=doc.createElement("students");doc.appendChild(students); // Tạo thẻ studentElement student=doc.createElement("student");students.appendChild(student); // Tạo thuộc tính n0=1Attr attr=doc.createAttribute("n0");attr.setValue("1");student.setAttributeNode(attr); // Thêm thẻ nameElement name=doc.createElement("name");name.appendChild(doc.createTextNode("John"));student.appendChild(name); // Thẻ codeElement code=doc.createElement("code");code.appendChild(doc.createTextNode("12345"));student.appendChild(code); // Thẻ ageElement age=doc.createElement("age");age.appendChild(doc.createTextNode("19"));student.appendChild(age); TransformerFactory transformerFactory=TransformerFactory.newInstance();Transformer transformer=transformerFactory.newTransformer(); DOMSource source=newDOMSource(doc); Filef=newFile("E://students.xml");StreamResult result=newStreamResult(f); transformer.transform(source,result);}} |
Kết quả:
5/5 - (1 bình chọn)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, Ghi XML Trong Java Với DOM Parser - Deft Blog
-
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
-
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