java解析xml文件(附jar包和使用实例)

解析xml文件用到了dom4j-1.6.1.jar包,具体版本可能有新旧之分,我提供如下某度云盘,供下载测试用。
链接:http://pan.baidu.com/s/1i5Aw8Jz 密码:qma7
下面是我的测试代码:

先是主要测试文件:

package com.lxk.xmlTest;

import com.google.common.collect.Lists;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.File;
import java.util.Arrays;
import java.util.List;

/**
 * Created by lxk on 2016/11/10
 */
public class XmlTest {
    public static void main(String[] args) {
        xmlTest();
    }

    /**
     * 测试解析xml文件
     */
    @SuppressWarnings("unchecked")
    private static void xmlTest() {
        SAXReader reader = new SAXReader();
        reader.setEncoding("utf-8");
        Document document;
        try {
            document = reader.read(new File("src/testConfig.xml"));
            Element root = document.getRootElement();//得到xml跟标签,此处是<root></root>
            List<Element> list = root.elements("stream");
            List<XmlModel> xmlNodeList = Lists.newArrayList();//得到xml文件的配置信息
            for (Element e : list) {
                List<String> streamIds = Arrays.asList(e.element("streamId").getStringValue().split(","));
                XmlModel temp = new XmlModel(streamIds, e.element("name").getStringValue());
                xmlNodeList.add(temp);
            }
            for (XmlModel xmlModel : xmlNodeList) {
                System.out.println(xmlModel);
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }

    }
}

然后是节点model文件:

package com.lxk.xmlTest;

import java.util.List;

/**
 * 配置文件节点 model
 * <p>
 * Created by lxk on 2016/11/10
 */
public class XmlModel {
    /**
     * 流ID
     */
    private List<String> streamIds;
    /**
     * 流名称
     */
    private String name;


    /**
     * 默认构造函数
     * (在构造model的时候,若要添加新的带参数构造函数,那么这个默认函数一定要写。避免出现你不知道的错)
     */
    public XmlModel() {
    }

    /**
     * 带参构造函数
     */
    public XmlModel(List<String> streamIds, String name) {
        this.streamIds = streamIds;
        this.name = name;
    }

    public List<String> getStreamIds() {
        return streamIds;
    }

    public void setStreamIds(List<String> streamIds) {
        this.streamIds = streamIds;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "单个节点{" +
                "streamIds=" + streamIds +
                ", name='" + name + '\'' +
                '}';
    }
}

最后是xml配置文件:(里面的标签随自己意取名,在Java文件对应就可以)

<?xml version="1.0" encoding="utf-8"?>

<root>
    <stream>
        <streamId>576a32b7393048060fdeb463,57198f91c5e62fca950103fd</streamId>
        <name>借记卡及贷记卡总量</name>
    </stream>
    <stream>
        <streamId>57ba9ea8e4b040a7317c86a0,57f88f52e4b0fbcf8381665f</streamId>
        <name>支付宝-借记卡</name>
    </stream>
    <stream>
        <streamId>580f0b32e4b034a9cf9eaaa6</streamId>
        <name>支付宝-贷记卡</name>
    </stream>
    <stream>
        <streamId>580f058ee4b034a9cf9eaaa2</streamId>
        <name>财付通-借记卡</name>
    </stream>
    <stream>
        <streamId>57918dade4b0e55b2369e165</streamId>
        <name>财付通-贷记卡</name>
    </stream>
    <stream>
        <streamId>579af7c3e4b0c5e678ed9853</streamId>
        <name>其他借记卡快捷类交易</name>
    </stream>
    <stream>
        <streamId>580f0c2ae4b034a9cf9eaaa8</streamId>
        <name>其他贷记卡快捷类交易</name>
    </stream>
</root>

运行结果:

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值