java解析xml文件
阿新 • • 發佈:2018-03-25
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 voidmain(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文件