zoukankan      html  css  js  c++  java
  • 使用JDOM操作XML

      JDOM介绍

      JDOM是使用Java语言编写的,用于读写及操作XML的一套组件,Jdom同时具有DOM修改文件的优点和SAX读取快速的优点。 

      JDOM的使用

      首先下载JDOM的JAR包,本文使用的是jdom-2.0.5,下载地址:http://download.csdn.net/detail/onroads/9719611

      在工程目录下新建一个lib文件夹,将下载的jar包中的jar文件拷贝到lib文件夹下  

        

      右键项目Build Path->Configure Build Path...,如下图:

        

      选择Libraries->Add JARs...,添加lib文件夹中的jdom-2.0.5.jar

        

      使用JDOM

      JDOM主要的操作类如下表:

     创建XML文件:

            Map<String, String> map = new HashMap<>();
            map.put("小明", "xiaoming@163.com");
            map.put("翠花", "cuihua@163.com");
            
            Document document = null;    
            //定义根节点
            Element addresslist = new Element("addresslist");
            //声明一个Document对象
            document = new Document(addresslist);
            
            Set<Entry<String, String>> set = map.entrySet();
            Iterator<Entry<String, String>> iterator = map.entrySet().iterator();
            int i=0;
            while(iterator.hasNext()){
                Entry<String, String> mapentry = iterator.next();
                //定义节点
                Element linkman = new Element("linkman");
                Element name = new Element("name");
                Element email = new Element("email");
                //定义属性
                Attribute id = new Attribute("id", ++i+"");
                //设置节点内容
                name.setText(mapentry.getKey());
                email.setText(mapentry.getValue());
                //将属性添加到节点
                name.setAttribute(id);
                //连接节点
                linkman.addContent(name);
                linkman.addContent(email);
                addresslist.addContent(linkman);
            }
    
            //用来输出XML文件
            XMLOutputter out = new XMLOutputter();
            //设置输出编码
            out.setFormat(out.getFormat().setEncoding("GBK"));
            
            try{
                //输出XML文件
                out.output(document, new FileOutputStream("D:"+File.separator+"JdomXML.xml"));
            }catch(Exception e){
                e.printStackTrace();
            }

      生成的xml文件如下:

    <?xml version="1.0" encoding="GBK" standalone="no"?>
    <addresslist>
        <linkman>
            <name index="1">小丽</name>
            <email>xiaoli@163.com</email>
        </linkman>
        <linkman>
            <name index="2">李雷</name>
            <email>lilei@163.com</email>
        </linkman>
    </addresslist>

     读取刚才生成的xml文件:

     1         SAXBuilder sbBuilder = new SAXBuilder();
     2         Document doc = null;
     3         try {
     4             //找到Document
     5             doc = sbBuilder.build("D:"+File.separator+"output.xml");
     6             //读取根元素
     7             Element stu = doc.getRootElement();
     8             //得到全部linkman子元素
     9             List list = stu.getChildren("linkman");
    10             
    11             for(int i=0;i<list.size();i++){
    12                 Element element = (Element) list.get(i);
    13                 String name = element.getChildText("name");
    14                 String index = element.getChild("name").getAttributeValue("index");
    15                 String email = element.getChildText("email");
    16                 System.out.print("<name" + " index="+index+">" + name+"</name>");
    17                 System.out.println("<email>" + email+"</email>");
    18             }
    19             
    20         } catch (Exception e) {
    21             
    22             e.printStackTrace();
    23         }

       解析结果:

      

  • 相关阅读:
    企业库应用实践系列五:创建模板引擎Library
    关于HtmlHelper:是MVC自作聪明,还是我不够明白?
    企业库应用实践系列二:对象创建原理详解
    企业库应用实践系列三:自定义构造函数
    专业导论 计算机科学概论
    企业短期项目,缺人手
    光脚丫学LINQ(040):引发未将对象引用设置到对象的实例的异常
    光脚丫学LINQ(045):如何表示计算所得列(LINQ to SQL)
    光脚丫学LINQ(042):如何将列表示为由数据库生成的列
    光脚丫学LINQ(043):为实体类的列成员指定在数据库中的数据类型
  • 原文地址:https://www.cnblogs.com/centor/p/6215082.html
Copyright © 2011-2022 走看看