您现在的位置是:首页 > 正文

使用jdom获取xml中多个相同标签的值

2024-02-01 05:46:17阅读 3

1.导入的maven包

 <dependency>
    <groupId>dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>1.6.1</version>
 </dependency>

 <dependency>
    <groupId>jdom</groupId>
    <artifactId>jdom</artifactId>
    <version>1.0</version>
 </dependency>

2.代码实现

public class Main {
    public static void main(String[] args) {
        SAXReader reader = new SAXReader();
        Document document = null;
        try {
            document = reader.read("src\\main\\resources\\META-INF\\test.xml");
        } catch (DocumentException e) {
            e.printStackTrace();
        }

        //获取文档根节点
        Element root = document.getRootElement();
        
        //调用下面获取子节点的递归函数。
        getChildNodes(root);

        //获得指定节点下面的子节点
        Element contactElem = root.element("product_warehouse_stock");//首先要知道自己要操作的节点。
        List<Element> contactList = contactElem.elements();
        for (Element e:contactList){
            //获得指定标签的内容
            Element conElem = e.element("post_stock_quantity");
            Element conElem2 = e.element("warehouse_id");
            System.out.print("warehouse_id:"+conElem2.getText()+"    ");
            System.out.println("post_stock_quantity:"+conElem.getText());
        }
    }

    //递归查询节点函数,输出节点名称
    private static void  getChildNodes(Element elem){
        Iterator<Node> it= elem.nodeIterator();
        while (it.hasNext()){
            Node node = it.next();
            if (node instanceof Element){
                Element e1 = (Element)node;
                getChildNodes(e1);
            }

        }
    }
}

3.xml文件

<?xml version="1.0" encoding="utf-8"?>
<resultObject>
    <errorMessage><![CDATA[]]></errorMessage>
    <errorCode><![CDATA[0]]></errorCode>
    <product_warehouse_stock>
        <row>
            <sale_quantity><![CDATA[0]]></sale_quantity>
            <reserve_quantity><![CDATA[0]]></reserve_quantity>
            <sale_quantity_allot><![CDATA[0]]></sale_quantity_allot>
            <product_id><![CDATA[2]]></product_id>
            <warehouse_id><![CDATA[1]]></warehouse_id>
            <stock_quantity_ts><![CDATA[0]]></stock_quantity_ts>
            <post_stock_quantity><![CDATA[1000]]></post_stock_quantity>
            <reserve_sale_quantity><![CDATA[0]]></reserve_sale_quantity>
            <warehouse_type><![CDATA[0]]></warehouse_type>
            <stock_quantity><![CDATA[4]]></stock_quantity>
            <stock_quantity_allot><![CDATA[0]]></stock_quantity_allot>
            <pre_arrival_date><![CDATA[]]></pre_arrival_date>
            <stock_type><![CDATA[0]]></stock_type>
            <sale_quantity_ts><![CDATA[0]]></sale_quantity_ts>
        </row>
        <row>
            <sale_quantity><![CDATA[200]]></sale_quantity>
            <reserve_quantity><![CDATA[0]]></reserve_quantity>
            <sale_quantity_allot><![CDATA[0]]></sale_quantity_allot>
            <product_id><![CDATA[2]]></product_id>
            <warehouse_id><![CDATA[100]]></warehouse_id>
            <stock_quantity_ts><![CDATA[0]]></stock_quantity_ts>
            <post_stock_quantity><![CDATA[100]]></post_stock_quantity>
            <reserve_sale_quantity><![CDATA[200]]></reserve_sale_quantity>
            <warehouse_type><![CDATA[0]]></warehouse_type>
            <stock_quantity><![CDATA[300]]></stock_quantity>
            <stock_quantity_allot><![CDATA[0]]></stock_quantity_allot>
            <pre_arrival_date><![CDATA[]]></pre_arrival_date>
            <stock_type><![CDATA[0]]></stock_type>
            <sale_quantity_ts><![CDATA[0]]></sale_quantity_ts>
        </row>
    </product_warehouse_stock>
</resultObject>

4.xml文件目录

网站文章

  • C温故补缺(九):字节对齐与排序

    C温故补缺(九):字节对齐与排序

    这样就可以把几个不同的对象用一个字节的二进制位域来表示。因为C语言有默认的对齐方式,段内按4字节对齐,所以虽然Data只用了两位,仍要申请4字节的内存。一般说,一个位域只能在一个字节中,一个字节可以有...

    2024-02-01 05:46:10
  • Android实现金额输入小数点

    Android实现金额输入小数点

    Android实现金额输入小数点。

    2024-02-01 05:46:03
  • 单台服务器多台tomcat性能jvm配置,Tomcat性能配置之多并发(篇三)

    Tomcat中server.xml配置中提供连接池功能,以及并发情况下访问数量增多,导致服务器压力较大,甚至可能由于线程数量、连接数分配不合理导致服务器崩溃,所以我们需要修改服务器部分参数。(我的硬件...

    2024-02-01 05:45:34
  • Android使用okhttp进行文件上传以及显示进度百分比

    Android使用okhttp进行文件上传以及显示进度百分比

    本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;

    2024-02-01 05:45:26
  • 2022.7.25-7.31 AI行业周刊(第108期):值钱比赚钱更重要

    2022.7.25-7.31 AI行业周刊(第108期):值钱比赚钱更重要

    篇章一:值钱比赚钱更重要上周有个粉丝私信问我,他毕业后通过培训加入了AI行业,将近1年多了。最近想跳槽,问我按照他现在的情况,应该要多少钱一个月?我问他,这一年多的工作,有哪方面的学习积累?做过哪些项...

    2024-02-01 05:45:18
  • Xcode编译报错:interface Builder xib Compiler error

    interface Builder xib Compiler error: Interface Builder encountered an error communicating with the iPhone Simulator 解决方案:关闭模拟器,重启

    2024-02-01 05:44:44
  • 【docker】Docker run -it centos FATAL:Kernel too old

    【docker】Docker run -it centos FATAL:Kernel too old

    1.问题出现 使用docker pull centos 下载镜像文件。在使用docker run -it centos 启动失败。 [root@localhost ~]# docker run -it centos FATAL: kernel too old 说内核过旧。 2.问题分析 一般用docker pull centos 不添加参数 默认就是最新的版本,因此打算看看是不是版...

    2024-02-01 05:44:39
  • 记一次编写日志文件分析工具

    记一次编写日志文件分析工具

    因为发现老是有吊毛爆破我的博客,我博客又不是拿wordpress搭的,你爆你????呢???我就想着查这些人在干哈子以及ip地址,就编写了个日志文件分析工具,这个针对nginx的日志文件分析stati...

    2024-02-01 05:44:10
  • 【NLP PyTorch】字符级RNN循环网络模型姓氏对应国家分类(项目详解)

    【NLP PyTorch】字符级RNN循环网络模型姓氏对应国家分类(项目详解)

    本文的任务主要来源于PyTorch的官方教程,即给定各国人名的数据集,你需要训练出一个RNN,它能够根据输入的人名来判断这个人来自哪个国家(分类任务)。本文重点在于全过程的梳理,具体包含了数据加载、数据预处理、模型创建、模型训练、模型评估、模型预测与模型部署

    2024-02-01 05:44:04
  • [TI TDA4 J721E]]Decode节点解码H.264视频流生成NV12 YUV图像 使用和移植

    [TI TDA4 J721E]]Decode节点解码H.264视频流生成NV12 YUV图像 使用和移植

    Encode 生成H264视频流 Decode 生成 NV12YUV图像 Pipeline 使用 Decode 代码移植

    2024-02-01 05:43:55