import java.io.IOException; import nu.xom.*; public class IDTagger { private static int id = 1; public static void processElement(Element element) { if (element.getAttribute("ID") == null) { element.addAttribute(new Attribute("ID", "_" + id)); id = id + 1; } // recursion Elements children = element.getChildElements(); for (int i = 0; i < children.size(); i++) { processElement(children.get(i)); } } public static void main(String[] args) { Builder builder = new Builder(); for (int i = 0; i < args.length; i++) { try { // Read the entire document into memory Document document = builder.build(args[i]); processElement(document.getRootElement()); System.out.println(document.toXML()); } catch (ParsingException ex) { System.err.println(ex); continue; } catch (IOException ex) { System.err.println(ex); continue; } } } // end main }