java对xml文件的读取

本文提供了一个使用Java读取XML文件并解析其内容的具体示例。通过SAXReader读取XML文档,遍历节点获取类别及子类信息,并将数据转换为Java对象列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java对xml文件的读取

 
<?xml version="1.0" encoding="UTF-8"?>
<body>
    <names type="1">
        <name>类别1</name>
        <child>
            <name>子类1</name>
            <type>11</type>
        </child>
    </names>
    <names type="2">
        <name>类别2</name>
        <child>
            <name>子类1</name>
            <type>21</type>
        </child>
    </names>
    <names type="3">
        <name>子类2</name>
        <type>31</type>
    </names>
    <names type="4">
        <name>子类4</name>
        <type>41</type>
    </names>
</body>
private List<Ictname> Readxmlist(String filename) {
        List<Ictname> list = new ArrayList<>();
        File file = new File(filename);
        SAXReader reader = new SAXReader();
        try {
            Document document = reader.read(file);
            Element root = document.getRootElement();
            List<Element> childElements = root.elements();
             for (Element child : childElements) {
                 Ictname c = new Ictname();
                 int t=Integer.parseInt(child.attributeValue("type"));
                 if(t==5){t=38;}if(t==6){t=39;}
                 c.setType(t);
                 c.setName(child.elementText("name"));
                 List<Element> nodelist = child.elements("child");
                 c.setLen(nodelist.size()+1);
                 if(nodelist.size()>0){
                     c.setChild(new ArrayList<Ictname>());
                     for (Element enode : nodelist) {
                         Ictname cc = new Ictname();
                         cc.setType(Integer.parseInt(enode.elementText("type")));
                         cc.setName(enode.elementText("name"));
                         c.getChild().add(cc);
                     } 
                 }
                 list.add(c);
             }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        return list;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值