java - DOM解析XML文件时抛出空指针异常

查看:319
本文介绍了java - DOM解析XML文件时抛出空指针异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

public class DomDemo {
    public static void main(String[] args) {
        //创建解析的XML文档对象,其保存在工程根目录下的article.xml文件
        File xmlFile = new File("/Users/Leonpard/Workspaces/MyEclipse 10/XMLprocess/WebRoot/article.xml");
        //声明一个DocumentBuilder对象。抽象类,不能直接构建,可以通过DocumentFactory来构建
        DocumentBuilder builder = null;
        //声明一个DocumentBuilderFactory对象。通过单例模式构建
        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
        
        try {
            builder = builderFactory.newDocumentBuilder();    //取得默认的DocumentBuilder
            Document document = builder.parse(xmlFile);        //解析文件
            Element root = document.getDocumentElement();    //获得根元素
            System.out.println("根元素:" + root.getNodeName());
            
            NodeList childNodes = root.getChildNodes();        //获得根元素下的子节点
            
            for(int i = 0; i < childNodes.getLength(); i ++) {    //遍历子节点
                Node node = childNodes.item(i);
                if("article".equals(node.getNodeName())) {
                    //如果节点名称为"article"
                    //输出article元素属性category
                    System.out.println("\r\n找到一篇文章。所属分类:" + node.getAttributes().getNamedItem("category")
                            .getNodeValue() + "。");
                    
                    //获得article下的节点
                    NodeList nodeDetail = node.getChildNodes();
                    for(int j = 0; j < nodeDetail.getLength(); j ++) {
                        Node detail = childNodes.item(j);
                        if("title".equals(detail.getNodeName())) {
                            System.out.println("标题:" + detail.getTextContent());
                        } else if("author".equals(detail.getNodeName())) {
                            System.out.println("作者:" + detail.getTextContent());
                        } else if("email".equals(detail.getNodeName())) {
                            System.out.println("邮箱:" + detail.getTextContent());
                        } else if("date".equals(detail.getNodeName())) {
                            System.out.println("日期:" + detail.getTextContent());
                        }
                    }
                }
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }    
        
    }
}
、、、

if("title".equals(detail.getNodeName())) {

这里为什么抛出空指针异常??

解决方案

detail 为null时不就是空指针么。

这篇关于java - DOM解析XML文件时抛出空指针异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆