Java XML解析 之 读取,添加,删除,修改 2

xiaoxiao2021-02-28  38

http://www.verejava.com/?id=16995144631335

下载依赖 jar 包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar package com.xml; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class TestAttribueXml { /** * 遍历 * @param args */ public static void testRead() { SAXReader reader=new SAXReader(); try { Document doc=reader.read(new File("student.xml")); List<Node> nodeList=doc.selectNodes("/data/student"); for(Node node:nodeList) { System.out.println(node.getName()+":"+node.valueOf("@name")+","+node.valueOf("@age")); } } catch (DocumentException e) { e.printStackTrace(); } } /** * 添加 * @param args */ public static void testAdd() { SAXReader reader=new SAXReader(); XMLWriter writer=null; try { Document doc=reader.read(new File("student.xml")); Element root=doc.getRootElement(); Element element=root.addElement("student"); element.addAttribute("name", "李浩"); element.addAttribute("age","23"); OutputFormat format=OutputFormat.createPrettyPrint(); writer=new XMLWriter(new FileWriter("student.xml"),format); writer.write(doc); writer.flush(); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * 修改 * @param args */ public static void testUpdate() { SAXReader reader=new SAXReader(); XMLWriter writer=null; try { Document doc=reader.read(new File("student.xml")); List<Element> elementList=doc.selectNodes("/data/student"); for(Element element:elementList) { String name=element.attributeValue("name"); if("李军".equals(name)) { element.setAttributeValue("age", "21"); } } OutputFormat format=OutputFormat.createCompactFormat(); writer=new XMLWriter(new FileWriter("student.xml"),format); writer.write(doc); writer.flush(); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * 修改 * @param args */ public static void testUpdate2() { SAXReader reader=new SAXReader(); XMLWriter writer=null; try { Document doc=reader.read(new File("student.xml")); Element root=doc.getRootElement(); Iterator<Element> iter=root.elementIterator(); while(iter.hasNext()) { Element element=iter.next(); String name=element.attributeValue("name"); if("李军".equals(name)) { element.setAttributeValue("age", "24"); } } OutputFormat format=OutputFormat.createCompactFormat(); writer=new XMLWriter(new FileWriter("student.xml"),format); writer.write(doc); writer.flush(); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * 删除 * @param args */ public static void testDelete() { SAXReader reader=new SAXReader(); XMLWriter writer=null; try { Document doc=reader.read(new File("student.xml")); List<Element> elementList=doc.selectNodes("/data/student"); for(Element element:elementList) { String name=element.attributeValue("name"); if("李军".equals(name)) { element.getParent().remove(element); break; } } OutputFormat format=OutputFormat.createCompactFormat(); writer=new XMLWriter(new FileWriter("student.xml"),format); writer.write(doc); writer.flush(); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { testDelete(); testRead(); } } student.xml <?xml version="1.0" encoding="UTF-8"?> <data><student name="张山" age="22"/><student name="李浩" age="23"/></data>

http://www.verejava.com/?id=16995144631335

转载请注明原文地址: https://www.6miu.com/read-2623318.html

最新回复(0)