三种解析xm文件的方法

来源:互联网 发布:广数g76编程报警52 编辑:程序博客网 时间:2024/05/13 02:06

xml代码:

  1. <?xml version="1.0" encoding="UTF-8"?>      
  2. <HD>      
  3.   <disk name="C">      
  4.     <capacity>8G</capacity>      
  5.     <directories>200</directories>      
  6.     <files>1580</files>      
  7.   </disk>      
  8.      
  9.   <disk name="D">      
  10.     <capacity>10G</capacity>      
  11.     <directories>500</directories>      
  12.     <files>3000</files>      
  13.   </disk>      
  14. </HD>   

dom解析

  1. public class DomXML {   
  2.        
  3.     public static void main(String[] args)throws Exception {   
  4.         //得到DOM解析器的工厂实例  
  5.         DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();   
  6.         //从DOM工厂中获得DOM解析器  
  7.         DocumentBuilder dbBuilder = dbFactory.newDocumentBuilder();   
  8.         //声明为File为了识别中文名  
  9.         Document doc = null;   
  10.         doc = dbBuilder.parse("F:/work_sapce_petroskill/Spring/src/Dom/test.xml");   
  11.            
  12.         //得到文档名称为Student的元素的节点列表  
  13.         NodeList list = doc.getElementsByTagName("disk");   
  14.            
  15.         //遍历该集合,显示结合中的元素及其子元素的名字  
  16.         for(int i = 0; i< list.getLength() ; i ++){   
  17.             Element element = (Element)list.item(i);   
  18.             String name=element.getAttribute("name");   
  19.             String capacity=element.getElementsByTagName("capacity").item(0).getFirstChild().getNodeValue();   
  20.             String directories=element.getElementsByTagName("directories").item(0).getFirstChild().getNodeValue();   
  21.             String files=element.getElementsByTagName("files").item(0).getFirstChild().getNodeValue();   
  22.             System.out.println("磁盘信息:");    
  23.             System.out.println("分区盘符:"+name);    
  24.             System.out.println("分区容量:"+capacity);    
  25.             System.out.println("目录数:"+directories);    
  26.             System.out.println("文件数:"+files);    
  27.             System.out.println("-----------------------------------");    
  28.         }         
  29.     }   
  30.  }  

jdom解析

  1. public class JDomXML {    
  2.   public static void main(String[] args) throws Exception{     
  3.     SAXBuilder sb=new SAXBuilder();    
  4.     Document doc=sb.build(Dom4jXML.class.getClassLoader().getResourceAsStream("Dom/test.xml")); //构造文档对象  
  5.     Element root=doc.getRootElement(); //获取根元素  
  6.     List list=root.getChildren("disk");//取名字为disk的所有元素   
  7.     for(int i=0;i<list.size();i++){    
  8.        Element element=(Element)list.get(i);    
  9.        String name=element.getAttributeValue("name");    
  10.        String capacity=element.getChildText("capacity");//取disk子元素capacity的内容   
  11.        String directories=element.getChildText("directories");    
  12.        String files=element.getChildText("files");    
  13.        System.out.println("磁盘信息:");    
  14.        System.out.println("分区盘符:"+name);    
  15.        System.out.println("分区容量:"+capacity);    
  16.        System.out.println("目录数:"+directories);    
  17.        System.out.println("文件数:"+files);    
  18.        System.out.println("-----------------------------------");    
  19.     }      
  20.   }    
  21. }   

dom4j解析

  1. public class Dom4jXML{      
  2.    public static void main(String[] args) throws Exception {   
  3.        
  4.         //创建文件对象     
  5.         java.io.File file=new java.io.File("F:/workSapce/javaXML/src/Dom/test.xml");      
  6.         //创建一个读取XML文件的对象     
  7.         SAXReader reader=new SAXReader();      
  8.         //创建一个文档对象     
  9.         Document document=reader.read(file);      
  10.         //获取文件的根节点     
  11.         Element element=document.getRootElement();   
  12.         for(Iterator i=element.elementIterator("disk");i.hasNext();){   
  13.             //获取节点元素     
  14.             element=(Element)i.next();   
  15.             String name=element.attributeValue("name");   
  16.             String capacity=element.elementText("capacity");//取disk子元素capacity的内容   
  17.             String directories=element.elementText("directories");    
  18.             String files=element.elementText("files");    
  19.             System.out.println("磁盘信息:");    
  20.             System.out.println("分区盘符:"+name);    
  21.             System.out.println("分区容量:"+capacity);    
  22.             System.out.println("目录数:"+directories);    
  23.             System.out.println("文件数:"+files);    
  24.             System.out.println("-----------------------------------");    
  25.         }      
  26.     }      
  27. }     

 

 

 

 

原创粉丝点击