• java解析xml文件


    导入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("-----------------------------------");  
    
            }   
            
          }      
    }
  • 相关阅读:
    Go语言的运算符
    Nginx基本安全优化
    在LNMP环境中部署一个blog服务程序
    PHP缓存加速器
    Go语言基础语法
    Go语言数据类型
    Go语言变量
    Go语言常量
    Go语言结构
    LNMP之PHP安装
  • 原文地址:https://www.cnblogs.com/z360519549/p/8642098.html
Copyright © 2020-2023  润新知