1. 程式人生 > >java解析xml文件

java解析xml文件

name get size ava load children asstream blog spa

導入jdom 包。

一:xml文件 test.xml 的內容:

<?xml version="1.0" encoding="UTF-8"?>  
<HD>  
  <disk name="C">  
    <capacity>8G</capacity>  
    <directories>200</directories>  
    <files>1580</files>  
  </disk>  
  
  <disk name="D">  
    <capacity
>10G</capacity> <directories>500</directories> <files>3000</files> </disk> </HD>

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

public class Test {
    
    public static void
main(String[] args) throws Exception{ SAXBuilder sb=new SAXBuilder(); // InputStream in = Test.class.getClassLoader().getResourceAsStream("D:\\test.xml"); File file = new File("D:\\test.xml"); InputStream in = new FileInputStream(file); Document doc
=sb.build(in); // Document doc=sb.build(Test.class.getClassLoader().getResourceAsStream("test.xml")); //構造文檔對象 Element root=doc.getRootElement(); //獲取根元素HD List list=root.getChildren("disk");//取名字為disk的所有元素 for(int i=0;i<list.size();i++){ Element element=(Element)list.get(i); String name = element.getAttributeValue("name");//獲取name屬性值 String capacity=element.getChildText("capacity");//取disk子元素capacity的內容 String directories=element.getChildText("directories");//取disk子元素directories的內容 String files=element.getChildText("files");//取disk子元素files的內容 System.out.println("磁盤信息:"); System.out.println("分區盤符:"+name); System.out.println("分區容量:"+capacity); System.out.println("目錄數:"+directories); System.out.println("文件數:"+files); System.out.println("-----------------------------------"); } } }

輸出:

磁盤信息:
分區盤符:C
分區容量:8G
目錄數:200
文件數:1580
-----------------------------------
磁盤信息:
分區盤符:D
分區容量:10G
目錄數:500
文件數:3000
-----------------------------------

二:解析傳入的xml格式的字符串:

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

public class Test {
    
    public static void main(String[] args) throws Exception{   
        SAXBuilder sb=new SAXBuilder();  
        
//        InputStream in =   Test.class.getClassLoader().getResourceAsStream("D:\\test.xml");
//        File file = new File("D:\\test.xml");
//        InputStream in = new FileInputStream(file);
//        Document doc=sb.build(in);
        
        String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><HD><disk name=\"C\"><capacity>8G</capacity>  <directories>200</directories>  <files>1580</files></disk>  </HD> ";
        InputStream   in   =   new   ByteArrayInputStream(str.getBytes());   
        InputStream   in2   =   new   ByteArrayInputStream(str.getBytes("UTF-8"));  
        Document doc=sb.build(in2);
        
//        Document doc=sb.build(Test.class.getClassLoader().getResourceAsStream("test.xml")); //構造文檔對象  
        Element root=doc.getRootElement(); //獲取根元素HD  
        List list=root.getChildren("disk");//取名字為disk的所有元素  
        for(int i=0;i<list.size();i++){  
           Element element=(Element)list.get(i);  
           String name = element.getAttributeValue("name");//獲取name屬性值  
           String capacity=element.getChildText("capacity");//取disk子元素capacity的內容  
           String directories=element.getChildText("directories");//取disk子元素directories的內容  
           String files=element.getChildText("files");//取disk子元素files的內容  
           System.out.println("磁盤信息:");  
           System.out.println("分區盤符:"+name);  
           System.out.println("分區容量:"+capacity);  
           System.out.println("目錄數:"+directories);  
           System.out.println("文件數:"+files);  
           System.out.println("-----------------------------------");  

        }   
        
      }      
}

java解析xml文件