package com.tyndalehouse.step.tools.analysis;
import org.apache.commons.io.FileUtils;
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import java.util.Collection;
/**
* Outputs all variations of XML attributes and nodes in a file
* Created by cjburrell on 30/04/2015.
*/
public class AnalyseXML {
public static void main(String[] args) throws Exception {
//arg0 is a directory
final Collection<File> files = FileUtils.listFiles(new File(args[0]), null, false);
for(File f : files) {
parseFile(readFile(f));
}
}
private static void parseFile(Document document) {
final NodeList childNodes = document.getChildNodes();
for (int i = 0; i < childNodes.getLength(); i++) {
final Node item = childNodes.item(i);
//now recurse
if (item instanceof Element) {
Element el = (Element) item;
System.out.println(el.getNodeName());
}
}
}
private static Document readFile(File file) throws Exception {
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
final DocumentBuilder newDocumentBuilder = factory.newDocumentBuilder();
return newDocumentBuilder.parse(file);
}
}