Java解析XML文件的方法有多种,个人感觉最常用的是使用Dom4j来解析XML文件。下面就简单介绍下Dom4j的基础使用。
Dom4j需要jar包的支持,大家可以从网络上下载,如dom4j-1.6.1.jar;
下载好JAR包以后,只要导入我们的工程就可以使用了,Java WEB工程导入路径为:WebRoot/WEB-INF/lib目录下;
代码示例:
一、查看xml文档基础操作(以封装方法展示):
public static void run() throws Exception { //获取Dom4j解析器对象 SAXReader reader = new SAXReader(); //读取XML,返回Document对象 Document document = reader.read("src/Demo.xml"); //获取根节点 Element rootElement = document.getRootElement(); //获取根节点下的全部名称为book的元素,得到元素集合 List<Element> elements = rootElement.elements("book"); //选择某一个元素 Element shu2 = elements.get(1); //获取元素下的摸个目标元素 Element name2 = shu2.element("name"); //获取元素的文本内容 getText() System.out.print("书名是:"+name2.getText()); }
二、插入一个xml元素并回写到xml文件的操作
public static void run2() throws Exception { //获取Dom4j解析器对象 SAXReader reader = new SAXReader(); //读取XML,返回Document对象 Document document = reader.read("src/Demo.xml"); //获取根节点 Element rootElement = document.getRootElement(); //获取目标节点元素 Element shu1 = (Element) rootElement.elements("book").get(1); //添加元素(addElement)和文本(addText);添加属性(addAttribute) shu1.addElement("prise").addText("99.8 yuan").addAttribute("属性名", "属性值"); //设置输出格式,使用OutputFormat,多采用createPrettyPrint();如果需要压缩格式,用createCompactFormat() OutputFormat format = OutputFormat.createPrettyPrint(); //设置输出编码 format.setEncoding("utf-8"); //创建回写类,并指定xml路径与写入格式 XMLWriter writer = new XMLWriter(new FileOutputStream("src/Demo.xml"),format); //回写 writer.write(document); //成功 System.out.print("ok,mylydg"); }
三、在指定位置插入元素的操作
public static void run3() throws Exception { //获取Dom4j解析器对象 SAXReader reader = new SAXReader(); //读取XML,返回Document对象 Document document = reader.read("src/Demo.xml"); //获取根节点 Element rootElement = document.getRootElement(); //获取目标节点元素 Element book = (Element) rootElement.elements("shu").get(1); //通过DocumentHelper创建一个元素 Element prise = DocumentHelper.createElement("prise"); //设置元素文本 prise.setText("99.8 yuan"); //获得目标元素的子元素集合 List<Element> elements = book.elements(); //通过下标添加元素到指定集合位置 elements.add(0, prise); //设置输出格式,使用OutputFormat,多采用createPrettyPrint();如果需要压缩格式,用createCompactFormat() OutputFormat format = OutputFormat.createPrettyPrint(); //创建回写类,并指定xml路径与写入格式 XMLWriter writer = new XMLWriter(new FileOutputStream("src/Demo.xml"),format); //回写 writer.write(document); //关闭流 writer.close(); //成功 System.out.print("ok,mylydg"); }
四、删除和更新的操作
public static void run4() throws Exception { //获取Dom4j解析器对象 SAXReader reader = new SAXReader(); //读取XML,返回Document对象 Document document = reader.read("src/Demo.xml"); //获取根节点 Element rootElement = document.getRootElement(); //获取目标节点元素 Element book = (Element) rootElement.elements("shu").get(1); //获取要删除的元素 Element prise = book.element("prise"); //删除 book.remove(prise); //获取要更新的元素 Element name = book.element("name"); //更新 name.setText("new name"); //设置输出格式,使用OutputFormat,多采用createPrettyPrint();如果需要压缩格式,用createCompactFormat() OutputFormat format = OutputFormat.createPrettyPrint(); //创建回写类,并指定xml路径与写入格式 XMLWriter writer = new XMLWriter(new FileOutputStream("src/Demo.xml"),format); //回写 writer.write(document); //关闭流 writer.close(); //成功 System.out.print("ok,mylydg"); }
以上就是Dom4j对xml解析的基本使用方法。