L'obtention de document avec la valeur null [document#: null] Après analyse de XML en java à l'aide de DocumentBuilder
Après l'analyse de la documengt je suis nulle, même si le document contient des données.
Voici mon code, j'ai mis toutes les validations de faux.
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());
La réponse vient comme :
doc:[#document: null]
Pourquoi?
Suis-je manque de validation?
Je pense que ce lien peut répondre à votre question. stackoverflow.com/questions/2018868/...
OriginalL'auteur Pradeep | 2011-04-17
Vous devez vous connecter pour publier un commentaire.
[#document: null]
est juste le toString de votredoc
exemple, il n'est pas sortie de l'ensemble de votre document XML.L'instance elle-même n'est pas null, vous pouvez probablement continuer votre traitement sans problème.
OriginalL'auteur wjans
vous devez ajouter le modificateur static à votre objet de Document, j'ai eu le même problème et après l'analyse de l'action de toutes les non-statique, les objets étaient tout simplement en se référant à la valeur null. Faisant en quelque sorte statique des forces java de conserver la référence à l'objet créé au cours de l'analyse de l'action dans votre variable.
OriginalL'auteur