Vous pouvez vérifier si un document XML est bien formé en utilisant le code suivant:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
builder.setErrorHandler(new SimpleErrorHandler());
// the "parse" method also validates XML, will throw an exception if misformatted
Document document = builder.parse(new InputSource("document.xml"));
La classe SimpleErrorHandler
mentionné dans le code ci-dessus est comme suit:
public class SimpleErrorHandler implements ErrorHandler {
public void warning(SAXParseException e) throws SAXException {
System.out.println(e.getMessage());
}
public void error(SAXParseException e) throws SAXException {
System.out.println(e.getMessage());
}
public void fatalError(SAXParseException e) throws SAXException {
System.out.println(e.getMessage());
}
}
Cette est venu de this website, qui fournit diverses méthodes pour valider XML avec Java. Notez également que cette méthode charge une arborescence DOM entière en mémoire, voir les commentaires sur les alternatives si vous souhaitez enregistrer sur la RAM.
Est-ce que cela va vérifier la ** syntaxe ** du fichier XML? Je ne veux pas utiliser un schéma XML ici ... – Hristo
Oui, il va vérifier que le document respecte les règles de "bonne forme" énoncées par la spécification XML - http://www.w3.org/TR/xml/# sec-bien formé.Cela signifie que tous les éléments doivent être fermés, imbriqués correctement, etc. En fait, la spécification définit une bonne forme parce que vous ne pouvez pas toujours utiliser une DTD. –
cela analyse et vérifie donc la syntaxe, car sinon il ne pourrait pas l'analyser ... que faites-vous de ce document de toute façon que vous devez faire cela séparément – DaVinci