这是我无法预料到的,文档没有说明这是否可能,但在调用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());
}
我错过了一个罐子吗?怪异!
答案 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)
虽然文档没有任何内容,但对象本身不为空。您应该将孩子添加到其中。