JDOM 2 测试代码

jdom2解析xml接口设计地相当优雅简洁,对于层级XML采用统一模式,废话不多说,增删改查,基本功能实现了,万事大吉。

环境搭建

JDOM2使用地下载地址:
http://www.jdom.org/downloads/index.html
解压工具包到一个单独文件夹,在eclipse中右击buildPath->Add JARs,添加Jdom2.jar到路径。

操作XML文件格式


<customers>
    <customer>
        <ID>1ID>
        <name>oneslidename>
        <password>icywaterpassword>
        <email>[email protected]email>
    customer>

    <customer>
        <ID>2ID>
        <name>Thpmpsonname>
        <password>icywaterpassword>
        <email>[email protected]email>
    customer>
customers>

这应该是最简单的XML格式,层级很少。

java操作部分

解析XML,你需要几个关键的对象:SAXBuilder和Document对象

import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;

import org.jdom2.*;
import org.jdom2.filter.ElementFilter;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.XMLOutputter;
import org.jdom2.xpath.XPath;
import org.jdom2.xpath.XPathBuilder;



public class example {

    public static void main(String[] args) {
           //Jdom2工具类
           SAXBuilder builder=new SAXBuilder();
           try {
           //xml文件的绝对路径
            String url="D:/workbunch/JDomParserExample/src/user.xml";
            //获得xml文件的Document对象
            Document document=builder.build("D:/workbunch/JDomParserExample/src/user.xml");
            //获得根元素
            Element root=document.getRootElement();

            //查询XML
            List list=root.getChildren("customer");//获得子元素的集合
            for(int i=0;iget(i).getChildText("ID"));//获得子元素文本值
            //写入XML文件时用到的输出类     
            XMLOutputter output=new XMLOutputter();

            //插入节点
            Element cus=new Element("customer");

            Element id=new Element("ID");
            id.setText("3");
            cus.addContent(id);
            root.addContent(cus);
            output.output(document,new FileWriter(url));

            //更新节点
            list.get(1).getChild("name").setText("Thpmpson");

            output.output(document,new FileWriter(url));


            //upgrade xml

            //删除节点
            root.removeContent(list.get(2));
            output.output(document,new FileWriter(url));
           } catch (JDOMException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
           } catch (IOException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
           }

    }

}

增加,删除,更新都是写操作,所以不要忘记用XMLOutputter对象写入。这应该是最简洁的覆盖基本操作的指导了。

兼容性

Jdom2与tomcat服务器是不兼容的,如果直接把jdom代码纳入servlet代码中,会使tomcat出现:
Connection refused的异常。

Connection refused: connect tomcat
eclipse中移除tomcat服务器本项目,重新启动,发现tomcat是可以正常启动的。
这是项目的问题。
特殊情况:
omcat导入jdom2 jar包中的对象就出问题了,去掉使用jdom中所有代码,tomcat因为加载jdom2包类出现错误,所以启动失败,暂时未找到解决办法。

你可能感兴趣的:(Java)