java实现xml类型的字符串提取相对应的字段

    /**
     * 提取xml文件中想要的字段值封装到map中
     * @param xml
     */
    public Map<String,Object> setXmlToMap(String xml) throws DocumentException {
        Map<String,Object> map = new HashMap<>();
        /***
         * import org.dom4j.Element;
         * import org.dom4j.Document;
         * import org.dom4j.DocumentException;
         * import org.dom4j.DocumentHelper;
         * 使用如上包导入
         */
        Document doc = DocumentHelper.parseText(xml);
        //eg:xml 示例
        //<person>
        //  <student>
        //     <age>1</age>
        //  <student>
        //  <teacher>
        //     <age>20</age>
        //  <teacher>
        // </person>
        //指向根节点
        //即拿到的是为person节点
        Element root = doc.getRootElement();
        Iterator<Element> elementIterator = root.elementIterator();

        while(elementIterator.hasNext()){
            //循环遍历拿到的是student 节点以及teacher节点
            Element firstIterator = elementIterator.next();
            //代表的是为teacher或者student节点的名称
            String firstName = firstIterator.getName();
            //拿到的是teacher 或者student所代表的值 因为其下还有子节点所以该值为空
            String firstText = firstIterator.getText();
            //需要拿到teacher或student其下的age值还需再遍历一遍循环
            Iterator<Element> secondIterator = firstIterator.elementIterator();
            while(secondIterator.hasNext()){
                Element secondElement = secondIterator.next();
                String secondName = secondElement.getName();
                String secondText = secondElement.getText();
                map.put(secondName,secondText);
                System.out.println(secondName+"\t"+secondText);
            }
            //目前只有3层嵌套如果还有更多嵌套可再次循环遍历
        }
        return map;
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值