Dom4j操作XML文件

1. 创建并写入XML

    public static void writeXML(String filename){
        try {
            Document document = DocumentHelper.createDocument();
            Element root = document.addElement("PortConfig");
            Element ePort;

            ePort = root.addElement("Port");
            ePort.addAttribute("Portname", "portBloodpress");
            ePort.addAttribute("Portnumber", "COM12");

            ePort = root.addElement("Port");
            ePort.addAttribute("Portname", "portWah");
            ePort.addAttribute("Portnumber", "COM14");

            ePort = root.addElement("Port");
            ePort.addAttribute("Portname", "portBloodsugar");
            ePort.addAttribute("Portnumber", "COM16");

            ePort = root.addElement("Port");
            ePort.addAttribute("Portname", "portBloodfat");
            ePort.addAttribute("Portnumber", "COM18");

            ePort = root.addElement("Port");
            ePort.addAttribute("Portname", "portUric");
            ePort.addAttribute("Portnumber", "COM20");

            OutputFormat format = new OutputFormat("    ", true);
            XMLWriter output = new XMLWriter(new FileWriter(new File(filename)), format);
            output.write(document);
            output.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

首先用DocumentHelper创建一个Document对象,然后给Document添加一个Element,也就是根Element;然后可以在这个根Element下面添加若干个Element,每一个Element用addAttribute()添加了属性名称和属性值;最后,使用XMLWriter把Document写入文件。

2. 读取并解析XML

    public static void readXML(String filename){

        try {
            SAXReader saxReader = new SAXReader();
            Document document = saxReader.read(filename);
            // 获取根节点
            Element portConfig = document.getRootElement();
            for (Iterator i = portConfig.elementIterator(); i.hasNext();) {
                Element port = (Element) i.next();
                String aname = port.attributeValue("Portname");
                String avalue = port.attributeValue("Portnumber");
                if (aname.equals("portBloodpress")){
                    Constant.portBloodpress = avalue;
                }
                else if (aname.equals("portWah")){
                    Constant.portWah = avalue;
                }
                else if (aname.equals("portBloodsugar")){
                    Constant.portBloodsugar = avalue;
                }
                else if (aname.equals("portBloodfat")){
                    Constant.portBloodfat = avalue;
                }
                else if (aname.equals("portUric")){
                    Constant.portUric = avalue;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

首先创建一个SAXReader,用这个SAXReader读出一个Document;然后获得这个Document的根Element,迭代获得根Element下面的每一个Element,对每一个Element,使用attributeValue()获得它的属性值。

3. 更新XML

    public static void updateXML(String filename){
        try {
            File f = new File(filename);
            SAXReader saxReader = new SAXReader();
            Document document = saxReader.read(curDir + "\\port_config.xml");
            // 获取根节点
            Element portConfig = document.getRootElement();
            for (Iterator i = portConfig.elementIterator(); i.hasNext();) {
                Element port = (Element) i.next();
                String aname = port.attributeValue("Portname");
                if (aname.equals("portBloodpress")){
                    port.setAttributeValue("Portnumber", Constant.portBloodpress);
                }
                else if (aname.equals("portWah")){
                    port.setAttributeValue("Portnumber", Constant.portWah);
                }
                else if (aname.equals("portBloodsugar")){
                    port.setAttributeValue("Portnumber", Constant.portBloodsugar);
                }
                else if (aname.equals("portBloodfat")){
                    port.setAttributeValue("Portnumber", Constant.portBloodfat);
                }
                else if (aname.equals("portUric")){
                    port.setAttributeValue("Portnumber", Constant.portUric);
                }
            }
            XMLWriter output = new XMLWriter(new FileWriter(new File(curDir + "\\port_config.xml")));
            output.write(document);
            output.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

更新和读取的过程差不多,只是对需要更新的属性用setAttributeValue()方法更新,最后再用XMLWriter写入文件。

XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<PortConfig>
    <Port Portname="portBloodpress" Portnumber="COM126"/>
    <Port Portname="portWah" Portnumber="COM146"/>
    <Port Portname="portBloodsugar" Portnumber="COM166"/>
    <Port Portname="portBloodfat" Portnumber="COM186"/>
    <Port Portname="portUric" Portnumber="COM206"/>
</PortConfig>
时间: 2024-08-03 22:15:55

Dom4j操作XML文件的相关文章

使用dom4j操作xml文件的增删改

package day2.domx; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter;

Java操作XML文件 dom4j 篇

在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileWriter; //工具包 import java.util.Iterator; import java.util.List; //dom4j包 import org.dom

java操作XML文件

XML文件可以用来作为一种小型数据库存在,但更多时候在项目中都是用来当成配置文件用的,也就避免不了对XML文件的增上改查操作. 在java中,解析XML文件的方式大致分为两种:DOM解析,SAX解析 先来说DOM解析方式:xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容. 用的较为多的是Dom4j工具(非官方)解析,简单介绍下Dom4j的使用,具体API文档请下载

【DRP】采用dom4j完成XML文件导入数据库

xml文件在现在的web开发中扮演着重要的角色,从数据库连接配置到其他各种参数的设置,xml文件在反射技术的应用中举足轻重,也正因为xml文件中保存着如此重要的参数,所以对xml文件的读写操作就显得更加重要.下面我们重点讲解一下dom4j完成XML文件导入数据库. 0.带读取的xml文件如下: 1.利用PL/SQL导入SQL脚本,建立Oracle数据库表(表T_XML)结构,用于接收xml导入的数据 2.按照下图,建立目录并导入相应文件 通过引入的相关jar包,实现dom4j技术解析xml文件(

Dom4j操作xml

boolean flag = budgetCommon.createFolderFile("C:\\mfmis\\DefaulSetting\\DefaulBudgetorginConfig.xml");//"+format.format(new Date())+" if(flag){//若返回为true,则代表此目录下的文件不存在,为第一次创建 budgetCommon.saveDefaulXML(defaulSettingForm,defaulSettingDi

使用DOM4J解析XMl文件与读取XML文件

XML文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <bookstore> 3 <book id="1"> 4 <name>冰与火之歌</name> 5 <author>乔治马丁</author> 6 <year>2014</year> 7 <price>89</price&g

利用XmlDocument操作XML文件

利用XmlDocument可以方便的操作XML文件. 1.操作XML文件基本方法 (1)添加对System.Xml的引用,并使用using语句添加引用: (2)假设要读取的XML文件如下: <?xml version="1.0" encoding="utf-8"?> <Students> <Student> <Name>张靓靓</Name> <Age>20</Age> <Hob

【java项目实战】dom4j解析xml文件,连接Oracle数据库

简介 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方,我们还是看一下官方给出的解释.如下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT等语言的库.它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP等编程标准. 特点 dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,例

.Net常用技巧_操作xml文件教程(插入节点、修改、删除)

已知有一个XML文件(bookstore.xml)如下:     <?xml   version="1.0"   encoding="gb2312"?>     <bookstore>         <book   genre="fantasy"   ISBN="2-3631-4">             <title>Oberon's   Legacy</title&