DocumentBuilder.newDocument()返回null

时间:2017-12-05 23:20:56

标签: java xml

这是我无法预料到的,文档没有说明这是否可能,但在调用DocumentBuilder的newDocument()方法之后,它返回null:

ajax

我得到的输出是

    // Initialize the DocumentBuilderFactory and DocumentBuilder factories.
    try {
        m_docFactory = DocumentBuilderFactory.newInstance();
        m_Log.error("m_docFactory is {}", m_docFactory);
        m_docBuilder = m_docFactory.newDocumentBuilder();
        m_Log.error("m_docBuilder is {}", m_docBuilder);
        m_doc = m_docBuilder.newDocument();
        m_Log.error("m_doc is {}", m_doc);
        m_xpath = XPathFactory.newInstance().newXPath();
        m_QCodeParameters = new QCodeParameters();
    }
    catch (DOMException e) {
        m_Log.error(e.toString());
    }
    catch (ParserConfigurationException e) {
        m_Log.error(e.toString());
    }

我错过了一个罐子吗?怪异!

2 个答案:

答案 0 :(得分:3)

它不会返回null,否则会打印m_doc is null。但是,您刚刚构建的toString Document方法正在调用,并且是org.apache.xerces.dom.NodeImpl类中的以下方法:

/** NON-DOM method for debugging convenience. */
public String toString() {
    return "["+getNodeName()+": "+getNodeValue()+"]";
}

getNodeValue()正在返回null

如果您在NodeImpl中检查方法:

/**
 * Returns the node value.
 * @throws DOMException(DOMSTRING_SIZE_ERR)
 */
public String getNodeValue()
    throws DOMException {
    return null;            // overridden in some subclasses
}

尝试访问m_doc的某些属性并快乐编码!

干杯!

答案 1 :(得分:0)

虽然文档没有任何内容,但对象本身不为空。您应该将孩子添加到其中。