J'essaie de comparer deux fichiers XML. Mon exigence est de comparer les anciens et nouveaux fichiers XML et si une différence est là fusionner dans le nouveau fichier XML.Comparer deux fichiers XML et obtenir les différences
L'extrait de code ci-dessous me permet de savoir si les deux fichiers sont égaux ou non.
public static void compare() throws SAXException, IOException, ParserConfigurationException{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
dbf.setCoalescing(true);
dbf.setIgnoringElementContentWhitespace(true);
dbf.setIgnoringComments(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc1 = db.parse(new File("old.xml"));
doc1.normalizeDocument();
Document doc2 = db.parse(new File("new.xml"));
doc2.normalizeDocument();
System.out.println (doc1.isEqualNode(doc2));
}
Mais je veux aussi les différences. S'il vous plaît dites-moi comment je peux obtenir les différences.
J'ai déjà essayé XMLUnit, mais je ne veux pas l'utiliser.
Dans mon cas, le xml est en format différent: Xml version = "1.0 "encoding =" UTF-8 "?> .... spring: les haricots> ... , j'ai plusieurs étiquettes comme ceci. –
Y at-il un moyen de java lui-même pour y parvenir. Je ne veux pas utiliser l'api 3ème partie. Ne pouvons-nous pas utiliser DocumentBuilderFactory ?? –
Ne pas réinventer la roue, il n'est pas si facile de faire un diff de deux fichiers. Je pense que c'est votre meilleur choix pour utiliser une api testée et bonne. –