欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

通过DOM4J对xml进行操作

程序员文章站 2022-05-28 20:25:40
...

通过DOM4J将一个node节点写入xml文件

private static void addStudent() {
		try {
			/****
			 * 通过dom4j将一个node节点写入到xml文件
			 */
			//创建SAXReader解析器对象
			SAXReader reader=new SAXReader();
			//加载studentes.xml
			Document doc=reader.read(DOM4jTest.class.
								getClassLoader().getResourceAsStream("studentes.xml"));
		    //获得doc的根节点对象
			Element root = doc.getRootElement();
			/***
			 * 修改doc表示的xml文件,修改内存中的数据
			 */
			//创建student节点对象,修改了内存中的doc树,给root节点添加了子节点
			Element student = root.addElement("student");
			//给student节点添加属性
			student.addAttribute("id", "120");
			//给student节点添加子节点
			Element name = student.addElement("name");
			name.setText("特朗普");
			Element sex = student.addElement("sex");
			sex.setText("男");
			Element age = student.addElement("age");
			age.setText("22");
			
			
			//创建Writer对象,指定文件
			FileWriter out= 
					new FileWriter("D:\\eclipse-work\\12_10_day19\\src\\studentes.xml");
			//创建OutputFormat实现数据写出的格式化
			OutputFormat format=new OutputFormat("\t", true);
			
			//创建XMLWriter对象,实现数据写入文件
			XMLWriter writer=new XMLWriter(out, format);
			writer.write(doc);
			writer.flush();
			writer.close();
			System.out.println("----------over----------");
		}catch(Exception ex) {
			ex.printStackTrace();
		}

通过DOM4J修改节点数据

public class DOM4jTest2 {

	public static void main(String[] args) throws DocumentException, IOException {
		//加载需要修改的文件
		SAXReader reader=new SAXReader();
		//加载xml文件
		Document doc = reader.read(DOM4jTest2.class
				.getClassLoader().getResourceAsStream("pet.xml"));
		//获得根节点
		Element root = doc.getRootElement();
		//获得root的子节点
		List<Element> elements = root.elements("pet");
		for(Element ele:elements) {
			String id = ele.element("id").getText();
			if(id.equals("111")) {
				ele.element("name").setText("aaaa");
			}
		}
		
		
		//创建Writer对象,指定文件
		FileWriter out= new FileWriter("src/pet.xml");
		//创建OutputFormat实现数据写出的格式化
		//OutputFormat format=new OutputFormat("\t", true);
		
		//XMLWriter writer=new XMLWriter(out,format);
		XMLWriter writer=new XMLWriter(out);
		writer.write(doc);
		writer.flush();
		writer.close();
		
	}

	 
}

通过DOM4J删除节点数据

public class DOM4jTest2 {

	public static void main(String[] args) throws DocumentException, IOException {
		 //创建SAXReader
		SAXReader reader=new SAXReader();
		//加载产生dom树
		Document doc = 
				reader.read(DOM4jTest2.class.getClassLoader().getResourceAsStream("pet.xml"));
		//获得root节点
		Element root = doc.getRootElement();
		
		//获得root的子节点
		List<Element> elements = root.elements("pet");
		
		for(Element ele:elements) {
			String id = ele.element("id").getText();
			if(id.equals("111")) {
				//删除某个节点
				root.remove(ele);
			}
		}
		//创建Writer对象,指定文件
		FileWriter out= new FileWriter("src/pet.xml");
		
		XMLWriter writer=new XMLWriter(out);
		writer.write(doc);
		writer.flush();
		writer.close();
		
	}

	 
}
相关标签: xml java