• Jdom的简单操作


    http://blog.csdn.net/heirenheiren/article/details/7354108

    http://www.cnblogs.com/hoojo/archive/2011/08/11/2134638.html

    这两篇博客有比较好的解释

    下面是我个人尝试

    package com.test;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.List;
    
    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.JDOMException;
    import org.jdom.input.SAXBuilder;
    import org.jdom.output.XMLOutputter;
    public class JDomTest {
    	public void dDom() throws JDOMException, IOException {
    		//指定解析器
    		 SAXBuilder sb=new SAXBuilder(); 
    		//获取xml文件的InputStream
    		 InputStream is=this.getClass().getClassLoader().getResourceAsStream("test.xml");
    		 System.out.println(is);
            //得到Document
    		 Document dc=sb.build(is);
    		 /* 获取文件路径,变为输出流,并尝试修改xml文件失败
    		  *  String url=String.valueOf(this.getClass().getClassLoader().getResource("test.xml"));
    	      *	 String path=url.substring(6);
    	      *	 System.out.println("url:"+url+"
    "+"path:"+url.substring(6));
    	      *	 OutputStream os=new FileOutputStream(new File(path));
    		  */
    		
    		 //取得根
    	     Element root=  dc.getRootElement();
    		 //获取说有根下面 名字为disk的所有子项,并放到list中
    	      List allList=root.getChildren("disk");
    	      for(int  i=0;i<allList.size();i++)
    	      {
    	    	  //获取单个element
    	        Element sigElement=(Element)allList.get(i);
    	        //获取单签element的属性
    	        System.out.println("disk name:"+sigElement.getAttributeValue("name"));
    	        //获取单签element下的子element
    	        System.out.println("capacity:"+sigElement.getChildText("capacity"));
    	        System.out.println("directories:"+sigElement.getChildText("directories"));
    	        System.out.println("files:"+sigElement.getChildText("files"));
    	       
    	      }
          /*获取文件路径,变为输出流,并尝试修改xml文件失败
           * root.getChild("disk").setText("F");
    	   * XMLOutputter outPutter=new XMLOutputter();
    	   * outPutter.output(dc,os);
           */
    
    	}
    	
    }
    

     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> 
    

     结果:

    java.io.BufferedInputStream@5cbfe9d
    disk name:C
    capacity:8G
    directories:200
    files:1580
    disk name:D
    capacity:10G
    directori es:500
    files:3000
    

     上面有尝试修改xml文件,逻辑上是没有错的,但是在执行过程中,总是有错,是jdom的问题,把代码注释掉,还是有错,只有把jdom包重新考进去覆盖原先的包,才不会报错

    郁闷啊! 

  • 相关阅读:
    A1023 Have Fun with Numbers [大整数乘法]
    大整数的四则运算
    A1096 Consecutive Factors [因子分解]
    A1078 Hashing [质数和散列结合]
    A1015 Reversible Primes [质数问题]
    又谈进制转换
    A1088 Rational Arithmetic [分数四则运算]
    A1081 Rational Sum [分数计算]
    linux主流系统配置静态ip
    主机ping虚拟机请求超时,虚拟机ping主机正常ping通导致ssh连接问题
  • 原文地址:https://www.cnblogs.com/fjsnail/p/3491955.html
Copyright © 2020-2023  润新知