package com.tyndalehouse.step.tools.esv;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.custommonkey.xmlunit.DetailedDiff;
import org.custommonkey.xmlunit.Diff;
import org.custommonkey.xmlunit.Difference;
import org.custommonkey.xmlunit.DifferenceEngine;
import org.custommonkey.xmlunit.DifferenceListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;
public class CheckXmlEquivalents {
private static final Logger LOGGER = LoggerFactory.getLogger(CheckXmlEquivalents.class);
public static void main(final String[] args) throws IOException, URISyntaxException, SAXException,
ParserConfigurationException {
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
final DocumentBuilder newDocumentBuilder = factory.newDocumentBuilder();
final Document i = newDocumentBuilder.parse(CheckXmlEquivalents.class
.getResourceAsStream("/esv2011.xml"));
final Document o = newDocumentBuilder.parse(new File("d:\\temp\\esv-out.xml"));
final DifferenceEngine engine = new DifferenceEngine(new DetailedDiff(new Diff(i, o)));
engine.compare(i.getFirstChild(), o.getFirstChild(), new DifferenceListener() {
@Override
public void skippedComparison(final Node arg0, final Node arg1) {
LOGGER.warn("Two nodes differ");
}
@Override
public int differenceFound(final Difference diff) {
LOGGER.warn("Difference found");
return Diff.RETURN_ACCEPT_DIFFERENCE;
}
}, null);
}
}