关于dom4j读取xml文件的null Nested exception备忘

          由于最近需要针对xml做一些解析工作,决定使用dom4j进行解析,其中碰到了org.dom4j.DocumentException: null Nested exception: null的问题,明显是因为找不到文件路径。而我用的是网上经典的语句 InputStream in = TestDom4j.class.getResourceAsStream(xmlFilePath)。个人目测,很多人都是看到的都是这个版本(http://lavasoft.blog.51cto.com/62575/66953),但是其中需要将xml进行一定路径的放置,这十分的不方便,不能以绝对路径方式指定xmlFilePath,需要能够解析任意形式的xml绝对路径下的文件。

      接着进行了一些查找,主要是针对class.getResourceAsStream的使用,遗憾的发现大多数文章都是在当前类的各种相对路径上进行了解释,也就是会所貌似class.getResourceAsStream是和当前类路径相关的一种文件流获取方式。其实没必要陷在其中,很简单的一句话就能变通,那就是让InputStream从FileInputStream中获得流即可,这样就可以任意指定文件了,代码如下:

     

    public static Document parse2Document(String xmlFilePath)throws FileNotFoundException { 
        SAXReader reader = new SAXReader(); 
        Document document = null; 
        try { 
        	File f = new File(xmlFilePath);
            InputStream in = new FileInputStream(f); 
            document = reader.read(in); 
        } catch (DocumentException e) { 
            System.out.println(e.getMessage()); 
            System.out.println("读取classpath下xmlFileName文件发生异常,请检查CLASSPATH和文件名是否存在!"); 
            e.printStackTrace(); 
        } 
        System.out.println("Read over~~");
        return document; 
    } 

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大胖5566

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值