揭开XML DOM的神秘面纱:10个实战案例教你轻松驾驭数据解析

XML DOM(Document Object Model)是处理XML数据的一种强大工具,它允许开发者通过树形结构来访问、修改和创建XML文档。以下是通过10个实战案例,帮助您深入理解并掌握XML DOM的数据解析。
1. 创建XML文档
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
2. 添加元素和属性
import org.w3c.dom.Element;
import org.w3c.dom.Attr;

Element root = document.createElement(“root”);
document.appendChild(root);

Attr attribute = document.createAttribute(“id”);
attribute.setValue(“1”);
root.setAttributeNode(attribute);
3. 查询元素
import org.w3c.dom.NodeList;

NodeList nodeList = document.getElementsByTagName(“element”);
for (int i = 0; i < nodeList.getLength(); i++) { Element element = (Element) nodeList.item(i); System.out.println(element.getTextContent()); } 4. 修改元素内容 Element element = (Element) document.getElementsByTagName("element").item(0); element.setTextContent("新内容"); 5. 删除元素 Element elementToRemove = (Element) document.getElementsByTagName("element").item(0); document.removeChild(elementToRemove); 6. 遍历XML树 import org.w3c.dom.Node; import org.w3c.dom.NodeList; NodeList nodeList = document.getElementsByTagName("*"); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); System.out.println(node.getNodeName()); } 7. 序列化XML文档 import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); DOMSource domSource = new DOMSource(document); StreamResult streamResult = new StreamResult(new java.io.FileOutputStream("output.xml")); transformer.transform(domSource, streamResult); 8. 解析XML文件 import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(new java.io.File("input.xml")); 9. 使用DOM解析复杂XML结构 import org.w3c.dom.NodeList; import org.w3c.dom.Element; NodeList nodeList = document.getElementsByTagName("complexElement"); for (int i = 0; i < nodeList.getLength(); i++) { Element element = (Element) nodeList.item(i); String value = element.getAttribute("attribute"); System.out.println("Attribute value: " + value); } 10. 在应用程序中集成DOM解析 // 假设您有一个应用程序,需要解析XML配置文件 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(new java.io.File("config.xml")); // 读取配置文件中的值 String value = document.getElementsByTagName("setting").item(0).getTextContent(); 通过这些实战案例,您可以更好地理解XML DOM的使用,并将其应用于各种数据解析场景。