夜光序言:

有一种爱,就是像我对你这样,远远地,用一点微弱的想像,张望。给这暗下去的岁月,涂一抹口红。这么多年我都不知道,我是在用想象维持对你的爱情,还是在用你维持想象的能力。

 

夜光 带你走进 Java基础编程实战(二十一 XML编程)

夜光 带你走进 Java基础编程实战(二十一 XML编程)

 

 

正文:我最近呢~~在做项目的维护工作嗯,大家对于XML必须要很了解,这在工作中很重要~~

 

夜光 带你走进 Java基础编程实战(二十一 XML编程)

 

我们先写一个user的XML文件

夜光 带你走进 Java基础编程实战(二十一 XML编程)

package xml.dom;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

//夜光:调用user的XML
public class DomReader 
{
    public static void main(String[] a)
    {
        recursiveTraverse(); //夜光:自上而下进行访问
        System.out.println("========夜光:华丽丽的分割线==========");
        traverseBySearch();    //夜光:根据名称进行搜索        
    }
    public static void recursiveTraverse()
    {
        try 
        {
            //夜光:采用Dom解析xml文件
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document document = db.parse("users.xml");
            
            //夜光:获取所有的一级子节点
            NodeList usersList = document.getChildNodes();
            System.out.println(usersList.getLength());  //1  
            
            for (int i = 0; i < usersList.getLength(); i++) 
            {
                Node users = usersList.item(i);         //1  users 
                
                NodeList userList = users.getChildNodes(); //夜光:获取二级子节点user的列表
                System.out.println("==" + userList.getLength()); //9
                
                for (int j = 0; j < userList.getLength(); j++) //夜光:思考为什么是9
                {
                    Node user = userList.item(j);
                    if (user.getNodeType() == Node.ELEMENT_NODE)
                    {
                         NodeList metaList = user.getChildNodes();
                         System.out.println("====" + metaList.getLength()); //7
                         
                         for (int k = 0; k < metaList.getLength(); k++) //7
                         {
                             //到最后一级文本
                            Node meta = metaList.item(k);
                            if (meta.getNodeType() == Node.ELEMENT_NODE)
                            {
                                System.out.println(metaList.item(k).getNodeName() 
                                        + ":" + metaList.item(k).getTextContent());
                            }                                                              
                         }                    
                         System.out.println();
                    }                   
                }
            }            
        } catch (Exception e) {
            e.printStackTrace();
        } 
    }   
    
    public static void traverseBySearch()
    {
        try 
        {
            //夜光:采用Dom解析xml文件
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document document = db.parse("users.xml");
            
            Element rootElement = document.getDocumentElement();         

            NodeList nodeList = rootElement.getElementsByTagName("name"); 
            if(nodeList != null) 
            { 
               for (int i = 0 ; i < nodeList.getLength(); i++) 
               { 
                  Element element = (Element)nodeList.item(i);                  
                  System.out.println(element.getNodeName() + " = " + element.getTextContent());
               } 
            }             
        } catch (Exception e) {
            e.printStackTrace();
        }     
    }       
}

 

 

相关文章:

  • 2021-09-30
  • 2021-06-06
  • 2022-01-09
  • 2021-10-26
  • 2021-10-14
  • 2021-11-30
  • 2022-01-12
  • 2021-05-14
猜你喜欢
  • 2021-05-26
  • 2021-11-03
  • 2021-05-05
  • 2021-05-31
  • 2022-01-12
  • 2022-01-09
  • 2021-05-05
相关资源
相似解决方案