2 suchaochen suchaochen 于 2016.03.02 15:09 提问

Java使用DOM方式解析XML,返回的Document对象为null
        // 1、创建一个DocumentBuilderFactory
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        System.out.println("dbf:"+dbf);
        // 2、创建DocumentBuilder
        try {
            DocumentBuilder db = dbf.newDocumentBuilder();
            System.out.println("db:"+db);
            // 3、通过DocumentBuilder对象解析器,使用parse()的多个重载方法就可以解析xml了
            File file = new File("books.xml");
            System.out.println(file.exists()); //true
            Document document = db.parse("books.xml");
            System.out.println(document); //[#document: null]
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

输出结果如下:
dbf:com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl@22e3ac
db:com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl@10f3bd7
true
[#document: null]
明明这个xml文件存在,解析出的Document就是null??

2个回答

BestwishesTolover
BestwishesTolover   2016.03.02 15:52

File file = new File("books.xml");
db.parse(file);

viola123ouyang
viola123ouyang   2018.02.01 14:13

这个不是空节点,它没有实现tostring方法,所以调试为显示为空,它实际是可以获取xml元素的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
dom4j使用XPath解析XML返回null的解决方法
使用XPath解析XML的时候,在基本代码没有写错的情况下,使用selectSingleNode()方法获取xml的内容时返回null值,很有可能是因为xml设置了命名空间。 1)在没有命名空间的情况下,book.xml的文件(文件位于src/cn/edu/gdut/web/xpath下)内容如下: thinking in java Bruce Eckel 108
XML解析的两种方式:DOM方式和SAX方式
DOM:Document ObjectModel,文档对象模型。这种方式是W3C推荐的处理XML的一种方式。 SAX:Simple API for XML。这种方式不是官方标准,属于开源社区XML-DEV,几乎所有的XML解析器都支持它。 一、DOM解析:          一次性把xml文档加载成Document树,通过Document对象得到节点对象,通过节点对象访问xml文档内容(
用dom解析如下xml文件内容
用dom解析如下xml文件内容 成都春熙路 成都盐市口 成都布鲁明顿 解析之后把所有年龄大于18的人的信息存储在List对象中, User类:有三个成员变量(String name,int age String addr) 并遍历输出list里所有人的名字。 dom解析的步骤     1)得到dom解析器DocumentBui
Java调用Document.getElementById方法返回null的解决办法
Java中操作xml的函数Document.getElementById(String id),是通过指定的id来获取对应的element。但是仅仅定义了正确的schema和对应的xml文件是不够的,返回值仍然是null。因为我们不仅要告诉xml文件我们所用的schema是哪个,还需要告诉Java的parser使用哪个schema来验证,否则parser就没法通过schema来验证xml文件内容,
Java——DOM方式生成XML
学完了解析XML,就该学习生成XML文件了。首先学习的是如何使用DOM方式生成XML文件。使用DOM方式生成XML文件有如下几步:首先是创建DOM树(即规定XML文件中的内容): 创建DocumentBuilderFactory对象 通过DocumentBuilderFactory对象创建DocumentBuilder对象 通过DocumentBuilder对象的newDocument()方法创建一
【Java】Dom解析XML(读取,增删改查,保存),Dom树转Map集合,Map集合结构化层次输出——三个示例的整合
效果图 XML文件片段 (永恒之塔服务端:\gameserver\data\static_data\item_sets\item_sets.xml)589KB
Java解析XML getNodeValue()返回空
最近在写解析XML的程序,可能是更新jar包的原因,原有程序居然报错了,程序代码: org.w3c.dom.NodeList rsdes = resDoc.getElementsByTagName("resultdescription"); if(rsdes!=null&&rsdes.getLength()>0){ throw new RuntimeException(rsdes.item(
xml解析时getElementById方法返回为null
Document有一个getElementById的方法,在文档中的解释是:     返回具有带给定值的 ID 属性的 Element。如果不存在此类元素,则此方法返回 null。如果多个元素具有带该值的 ID 属性,返回哪一个元素是不确定的。 注: 具有名称 "ID" 或 "id" 的属性不属于类型 ID,除非这样定义。                hah
JAVA DOM生成和解析XML实例
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。java操作XML时候有4中经典方法,本文将介绍DOM操作XML。并给出一个用DOM生成和解析XML的实例。 初始步骤如下: 1.创建解析工厂: DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); 2.指定
Java解析XML文件方法之一(DOM)
DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。 DOM接口提