CURD OPERATIONS IN XML
Introduction to CRUD Operations in XML
CRUD stands for Create, Read, Update, and
Delete, which are the basic operations performed
on data.
XML (Extensible Markup Language) is
commonly used for data storage, exchange, and
configuration files.
CRUD operations in XML involve manipulating
XML files using languages like Java, Python, or
C#.
2. CRUD Operations in XML
Operation Description
Adds new elements or records to an XML
Create
document.
Extracts or retrieves data from an XML
Read
document.
Modifies existing elements or attributes in an
Update
XML document.
Delete Removes elements or records from an XML
document.
Sample XML File (employees.xml)
<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee id="1">
<name>John Doe</name>
<position>Software Engineer</position>
<salary>70000</salary>
</employee>
<employee id="2">
<name>Jane Smith</name>
<position>Data Scientist</position>
<salary>80000</salary>
</employee>
</employees>
Performing CRUD Operations in XML using Java
Java provides DOM (Document Object Model) API
for manipulating XML files.
Create (Add New Employee)
Steps:
1. Load the XML file.
2. Create a new <employee> element.
3. Append the new element to the root <employees>.
4. Save changes to the XML file.
Java Code for Create Operation
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
public class XMLCRUDOperations {
public static void main(String[] args) {
try {
File xmlFile = new File("employees.xml");
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder =
factory.newDocumentBuilder();
Document doc = builder.parse(xmlFile);
Element root = doc.getDocumentElement(); //
Root element <employees>
// Create new employee element
Element newEmployee =
doc.createElement("employee");
newEmployee.setAttribute("id", "3");
Element name = doc.createElement("name");
name.setTextContent("Michael Brown");
Element position =
doc.createElement("position");
position.setTextContent("DevOps Engineer");
Element salary = doc.createElement("salary");
salary.setTextContent("75000");
// Append new elements to employee
newEmployee.appendChild(name);
newEmployee.appendChild(position);
newEmployee.appendChild(salary);
// Append new employee to root
root.appendChild(newEmployee);
// Write to XML file
TransformerFactory transformerFactory =
TransformerFactory.newInstance();
Transformer transformer =
transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new
File("employees.xml"));
transformer.transform(source, result);
System.out.println("New employee added
successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Read (Retrieve Employee Data)
Steps:
1. Load the XML file.
2. Read and extract employee details.
3. Display the details.
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.File;
public class XMLReadExample {
public static void main(String[] args) {
try {
File xmlFile = new File("employees.xml");
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder =
factory.newDocumentBuilder();
Document doc = builder.parse(xmlFile);
NodeList nodeList =
doc.getElementsByTagName("employee");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() ==
Node.ELEMENT_NODE) {
Element element = (Element) node;
System.out.println("ID: " +
element.getAttribute("id"));
System.out.println("Name: " +
element.getElementsByTagName("name").item(0).getT
extContent());
System.out.println("Position: " +
element.getElementsByTagName("position").item(0).ge
tTextContent());
System.out.println("Salary: " +
element.getElementsByTagName("salary").item(0).getT
extContent());
System.out.println("-------------------");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.3 Update (Modify Employee Salary)
Steps:
1. Load the XML file.
2. Find the employee element by ID.
3. Modify the salary.
4. Save changes.
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
public class XMLUpdateExample {
public static void main(String[] args) {
try {
File xmlFile = new File("employees.xml");
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder =
factory.newDocumentBuilder();
Document doc = builder.parse(xmlFile);
NodeList nodeList =
doc.getElementsByTagName("employee");
for (int i = 0; i < nodeList.getLength(); i++) {
Element element = (Element)
nodeList.item(i);
if (element.getAttribute("id").equals("2")) {
element.getElementsByTagName("salary").item(0).setT
extContent("90000");
}
}
// Write changes back to file
TransformerFactory transformerFactory =
TransformerFactory.newInstance();
Transformer transformer =
transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new
File("employees.xml"));
transformer.transform(source, result);
System.out.println("Employee salary updated
successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.4 Delete (Remove Employee)
Steps:
1. Load the XML file.
2. Find the employee by ID.
3. Remove the element.
4. Save changes.
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
public class XMLDeleteExample {
public static void main(String[] args) {
try {
File xmlFile = new File("employees.xml");
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder =
factory.newDocumentBuilder();
Document doc = builder.parse(xmlFile);
NodeList nodeList =
doc.getElementsByTagName("employee");
for (int i = 0; i < nodeList.getLength(); i++) {
Element element = (Element)
nodeList.item(i);
if (element.getAttribute("id").equals("3")) {
element.getParentNode().removeChild(element);
}
}
TransformerFactory transformerFactory =
TransformerFactory.newInstance();
Transformer transformer =
transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new
File("employees.xml"));
transformer.transform(source, result);
System.out.println("Employee deleted
successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Summary
Create: Add new employee records.
Read: Retrieve and display data.
Update: Modify employee details.
Delete: Remove employees.