xml中利用dom4j各个结点及结点属性,以及数据存放

1、dom4j介绍: 

       DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。

2、使用dom4j需要的jar包:

       xml-apis-2.0.2.jar

      dom4j-1.6.1.jar

3、测试所使用xml

      <?xml version="1.0" encoding="UTF-8"?>
<beans>
<!-- 创建一个对象 -->
    <bean id="stu1" className="com.henau.bean.Student">
        <property name="name" value="zhangsan" ></property>
        <property name="age" value="10" />
        <property name="sex" value="man" />
        <property name="hobby" value="swim" />
        <property name="teacher" value="teacher1"/>
    </bean>
</beans>

4、测试所使用class

     

package com.henau.bean;

import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

public class GFXML {
    public static void main(String args[]) {
        Map<String,String> propertyMap = new HashMap<String,String>();
       try {   
             File f = new File("src/bean.xml");   
             SAXReader reader = new SAXReader();   
             Document doc = reader.read(f);   
             Element root = doc.getRootElement();  
             System.out.println("rootname:"+root.getName());
             Element foo;   
             //得到bean的迭代器,遍历所有bean节点
            for (Iterator i = root.elementIterator("bean"); i.hasNext();) {  
            //得到第i个bean元素
              foo = (Element) i.next();
              //属性名为id的属性值.
              System.out.println("节点指定名称属性值得获取:"+foo.attributeValue("id"));
              /*System.out.println("一级子节点name:"+foo.getName());
              System.out.println("一级子节点属性值:"+foo.getStringValue());*/
              for (Iterator m = foo.elementIterator("property"); m.hasNext();) {  
                    //得到第i个bean元素
                      Element fooc = (Element) m.next();
                      //打印property结点中的name属性,value属性,并放入map中存储.
                      System.out.print("property节点的name属性值:"+fooc.attributeValue("name")+"        ");
                      System.out.println("property节点的value属性值:"+fooc.attributeValue("value"));
                      propertyMap.put(fooc.attributeValue("name"), fooc.attributeValue("value"));
                      }

               //检测map中是否存有数据
              System.out.println("propertyMap.size:"+propertyMap.size());
            
              }
            } catch (Exception e) {   
             e.printStackTrace();   
            }   

}
}

5、运行结果

     

6、思路:存储在xml中的对象利用dom4j解析,将数据存储到map中,也可以创建一个对象利用解析出的值进行对象的创建,为以后bean工厂的创建提供底层技术。纯属自己构思,更好的解决方案,技术希望讨论。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值