使用jdom獲取xml中多個相同標籤的值

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文件目錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章