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

来源:互联网 发布:编程求出玫瑰花数 编辑:程序博客网 时间:2024/06/07 07:11

解析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>

运行结果:








0 0
原创粉丝点击