将文档获取为null [#document:null]使用DocumentBuilder在Java中解析XML之后
||
解析文档后,即使文档包含数据,我也将得到null。
这是我的代码,我将所有验证都设置为false。
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(false); // never forget this!
domFactory.setCoalescing(false);
domFactory.setValidating(false);
domFactory.setFeature(\"http://xml.org/sax/features/namespaces\", false);
domFactory.setFeature(\"http://xml.org/sax/features/validation\", false);
domFactory.setFeature(\"http://apache.org/xml/features/nonvalidating/load-dtd-grammar\", false);
domFactory.setFeature(\"http://apache.org/xml/features/nonvalidating/load-external-dtd\", false);
domFactory.setFeature(\"http://apache.org/xml/features/allow-java-encodings\",
true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
builder.setEntityResolver(new EntityResolver() {
public InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId)
throws SAXException, java.io.IOException {
if (publicId.equals(\"--myDTDpublicID--\"))
// this deactivates the open office DTD
return new InputSource(new ByteArrayInputStream(\"<?xml version=\'1.0\' encoding=\'UTF-8\'?>\".getBytes()));
else return null;
}
});
Document doc = null;
URL url = new URL(urlStr);
URLConnection urlc = url.openConnection();
doc = builder.parse(urlc.getInputStream());
System.out.println(\"doc:\" + doc.toString());
响应如下:
doc:[#document: null]
为什么?
我是否缺少一些验证?
没有找到相关结果
已邀请:
2 个回复
誓猎贰
只是
实例的toString,它不会输出整个XML文档。 实例本身不为null,您可以毫无问题地继续进行处理。
蓄荣糖些