xml解析之使用dom4j的api对xml文件进行CRUD(二)

互联网 17-2-16
在使用dom4j的api对xml文件进行CRUD(一)见博客http://www.php.cn/的基础上,再对做一次练习。
package gz.itcast.a_dom4j_write;    import java.io.File;  import java.io.FileOutputStream;  import java.util.Iterator;    import org.dom4j.Document;  import org.dom4j.DocumentHelper;  import org.dom4j.Element;  import org.dom4j.io.OutputFormat;  import org.dom4j.io.SAXReader;  import org.dom4j.io.XMLWriter;  import org.junit.Test;    /**   *  课堂练习:    * 1.使用dom4j的api来生成以下的xml文件  <Students>  <Student id="1">  	<name>张三</name>  	<gender>男</gender>  	<grade>计算机1班</grade>  	<address>广州天河</address>  </Student>  <Student id="2">  	<name>李四</name>  	<gender>女</gender>  	<grade>计算机2班</grade>  	<address>广州越秀</address>  </Student>  </Students>    2.修改id为2的学生的姓名,改为“王丽”    3.删除id为2的学生   * @author APPle   *   */  public class Demo4 {    	/**  	 * 1.生成指定xml文档  	 * @throws Exception  	 */  	@Test  	public void test1() throws Exception{  		//1.内存创建xml文档  		Document doc = DocumentHelper.createDocument();  		  		//2.写入内容,第一个写入的就是根标签  		Element rootElem = doc.addElement("Students");  		  		//2.1 增加标签  		Element studentElem1 = rootElem.addElement("Student");  		//2.2 增加属性  		studentElem1.addAttribute("id", "1");  		//2.3 增加标签,【同时】设置文本  		studentElem1.addElement("name").setText("张三");  		studentElem1.addElement("gender").setText("男");  		studentElem1.addElement("grade").setText("计算机1班");  		studentElem1.addElement("address").setText("广州天河");  		  		//2.1 增加标签  		Element studentElem2 = rootElem.addElement("Student");  		//2.2 增加属性  		studentElem2.addAttribute("id", "2");  		//2.3 增加标签,同时设置文本  		studentElem2.addElement("name").setText("李四");  		studentElem2.addElement("gender").setText("女");  		studentElem2.addElement("grade").setText("计算机2班");  		studentElem2.addElement("address").setText("广州越秀");  		  		  		//3.只要对doc做了修改,都要做一次写出。内容写出到xml文件  		//3.1 输出位置  		FileOutputStream out = new FileOutputStream("d:/student.xml");  		//3.2 指定格式  		OutputFormat format = OutputFormat.createPrettyPrint();  		// 设置编码  		format.setEncoding("utf-8");  		XMLWriter writer = new XMLWriter(out,format);  		//3.3 写出内容  		writer.write(doc);  		//3.4关闭资源  		writer.close();  		  	}  	  	/**  	 * 2.修改id为2的学生姓名  	 * @throws Exception  	 */  	@Test  	public void test2() throws Exception{  		//1.查询到id为2的学生  		Document doc = new SAXReader().read(new File("d:/student.xml"));  		//1.1 找到所有的Student标签  		Iterator<Element> it = doc.getRootElement().elementIterator("Student");  		while(it.hasNext()){  			Element stuElem = it.next();//Student标签  			//1.2 查询id为id的学生标签  			if(stuElem.attributeValue("id").equals("2")){  				stuElem.element("name").setText("王丽");//覆盖式  				break;  			}  		}  	  		  		//3.1 输出位置  		FileOutputStream out = new FileOutputStream("d:/student.xml");  		//3.2 指定格式  		OutputFormat format = OutputFormat.createPrettyPrint();  		// 设置编码  		format.setEncoding("utf-8");  		XMLWriter writer = new XMLWriter(out,format);  		//3.3 写出内容  		writer.write(doc);  		//3.4关闭资源  		writer.close();  	}  	  	/**  	 * 3.删除id为2的学生  	 * @throws Exception  	 */  	@Test  	public void test3() throws Exception{  		//1.查询到id为2的学生  		Document doc = new SAXReader().read(new File("e:/student.xml"));  		//1.1 找到所有的Student标签  		Iterator<Element> it = doc.getRootElement().elementIterator("Student");  		while(it.hasNext()){  			Element stuElem = it.next();  			//1.2 查询id为id的学生标签  			if(stuElem.attributeValue("id").equals("2")){  				//1.3 删除该学生标签  				stuElem.detach();//自杀式  				break;  			}  		}  	  		  		//3.1 输出位置  		FileOutputStream out = new FileOutputStream("e:/student.xml");  		//3.2 指定格式  		OutputFormat format = OutputFormat.createPrettyPrint();  		// 设置编码  		format.setEncoding("utf-8");  		XMLWriter writer = new XMLWriter(out,format);  		//3.3 写出内容  		writer.write(doc);  		//3.4关闭资源  		writer.close();  	}  }

以上就是xml解析之使用dom4j的api对xml文件进行CRUD(二)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:xpath技术解析xml以及案例模拟用户登录效果

相关资讯