java高级——使用DOM4J解析xml

首先我们要导入一个DOM4J的jar包,可以在DOM4J的官网中下载。

导入DOM4J的jar包后,可以创建一个SAXReaderL对象,SAXReader saxReader=new SAXReader();然后通过这个对象使用read()方法读取到xml文件,读取到之后通过read.getRootElement();获取到跟标签,获取到跟标签之后就可以通过代码对这个xml进行一系列自己想要的操作,基本常用操作如下:

   Element root = doc.getRootElement();
        List elements = root.elements("book");//按照元素的标签名来得到该元素对应的节点集合
                 String a=element.elementText("name");
          List book = root.elements("book");
//通过遍历来完成来获取到book数组
   for (Element element :elements) {
            //通过属性名称得到对应的属性值
          System.out.println(element.attributeValue("id"));
            //通过元素标签名称得到对应的元素的文本信息
            System.out.println(element.getTextTrim());//输出第一标签名里的内容
           System.out.println(element.elementText("pagename"));//输出对应标签里的内容
            System.out.println(element.elementText("page"));

这里是获取到xml文件中数据的方法,我们还可以通过一下代码操作对xml文件进行增加、删除或者修改。

1、增加的写法:

  SAXReader saxReader=new SAXReader();
        File file=new File("book5.xml");
        try {
            Document read = saxReader.read(file);
            Element rootElement = read.getRootElement();
            Element element2 = rootElement.addElement("bookcao");
            Element element=rootElement.element("book");
            Element element1 = element.addElement("name");//在book标签中增加一个新标签,名为name
            Element element3 = element.addElement("writer");//在book标签中怎加一个新标签,名为writer
            element1.addElement("九阴真经");//书写name标签中的内容为九阴真经
            element3.addElement("一个太监");
            File file5=new File("book5.xml");
            FileOutputStream fileOutputStream = new FileOutputStream(file5);//这里确定增加内容放入到的位置
            OutputFormat of=OutputFormat.createPrettyPrint();
            of.setEncoding("UTF-8");//这里设置增加内容的形式
            XMLWriter xmlWriter=new XMLWriter(fileOutputStream,of);
            xmlWriter.write(read);//这里输入需要获取对应的根标签
            xmlWriter.close();//这个必须书写。


        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

2、删除的写法:

 SAXReader saxReader = new SAXReader();
        File file = new File("book5.xml");
        try {
            Document read = saxReader.read(file);
            Element rootElement = read.getRootElement();
            //Element element2 = rootElement.addElement("bookcao");
            Element element = rootElement.element("book");
            List elements = element.elements();//创建数组记录xml文件中的数据
            Element element1 = elements.get(0);//获取到数组中的一个标签
            element.remove(element1);//删除第一个标签
            //输出内存数据到文件中
            FileWriter fileWriter=new FileWriter("book5.xml");
            rootElement.write(fileWriter);
            fileWriter.close();
             } catch (DocumentException e) {
                    e.printStackTrace(); 
                 } catch (IOException e) {
                    e.printStackTrace();
                }    

3、修改的写法:

  SAXReader saxReader = new SAXReader();
        File file = new File("book5.xml");
        try {
            Document read = saxReader.read(file);
            Element rootElement = read.getRootElement();
            //Element element2 = rootElement.addElement("bookcao");
            Element element = rootElement.element("book");
            List elements = element.elements();//创建数组记录xml文件中的数据
            Element element1 = elements.get(0);
            element1.setText("九阳神功");//修改第一个标签中的内容为九阳神功
            FileWriter fileWriter=new FileWriter("book5.xml");
            rootElement.write(fileWriter);
            fileWriter.close();
    } catch (DocumentException e) {
            e.printStackTrace(); 
     } catch (IOException e) {
            e.printStackTrace();
        }

你可能感兴趣的:(java,java,xml,jar)