java讀取xml文件字段值

需求:讀取用戶發送的xml文件,獲得"BBZ001"節點的值。格式以下:node

        <Msg>dom

        <detail>  <BBZ001>xxx</BBZ001> </detail>ui

        <detail>  <BBZ001>xxx</BBZ001> </detail>xml

        </Msg>對象

解決:引入「org.w3c.dom.Document」包經過document類獲得xml的節點值索引

        //一、建立一個DocumentBuilderFactory的對象
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            try {
                //二、建立一個DocumentBuilder的對象
                DocumentBuilder db = dbf.newDocumentBuilder();
                //三、經過DocumentBuilder對象的parser方法加載xml文件到當前項目下
                /*注意導入Document對象時,要導入org.w3c.dom.Document包下的*/
                Document document = db.parse(filepath);//傳入文件名能夠是相對路徑也能夠是絕對路徑
                //獲取全部Detail節點的集合
                NodeList detailList = document.getElementsByTagName("Detail");
                //經過nodelist的getLength()方法能夠獲取detailList的長度
                System.out.println("一共有" + detailList.getLength() + "條明細");
                //遍歷每個Detail節點
                for (int i = 0; i < detailList.getLength(); i++) {
                    //❤未知節點屬性的個數和屬性名時:
                    //經過 item(i)方法 獲取一個detail節點,detailList的索引值從0開始
                    Node detail = detailList.item(i);  
                 //解析detail節點的子節點
                    NodeList childNodes = detail.getChildNodes();
                  //遍歷childNodes獲取每一個節點的節點名和節點值
                    for (int k = 0; k < childNodes.getLength(); k++) {
                      //區分出text類型的node以及element類型的node
     if(childNodes.item(k).getNodeType() == Node.ELEMENT_NODE && childNodes.item(k).getFirstChild()!= null && childNodes.item(k).getNodeName().equals("BBZ001")){                      
                            //獲取了element類型節點的節點值
                            logger.info("--節點值是:" + childNodes.item(k).getFirstChild().getNodeValue());
//                            System.out.println("--節點值是:" + childNodes.item(k).getTextContent());
                        }
                    }
                }
       } catch (ParserConfigurationException e) {
            e.printStackTrace();
        }element

相關文章
相關標籤/搜索