1 /** 2 * DOMXUpdater: a command-line XUpdate processor. 3 */ 4 import javax.xml.parsers.DocumentBuilder; 5 import javax.xml.parsers.DocumentBuilderFactory; 6 7 import org.apache.xml.serialize.OutputFormat; 8 import org.apache.xml.serialize.XMLSerializer; 9 import org.jaxen.dom.DocumentNavigator; 10 import org.jaxup.dom.DOMDocumentUpdater; 11 import org.jaxup.xupdate.XUpdate; 12 import org.w3c.dom.Document; 13 14 public class DOMXUpdater 15 { main(String[] args)16 public static void main(String[] args) 17 { 18 if (args.length != 2) 19 { 20 System.out.println("usage: DOMXUpdater <source document url> <XUpdate document url>"); 21 System.exit(1); 22 } 23 24 try 25 { 26 DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); 27 factory.setNamespaceAware(true); 28 DocumentBuilder builder=factory.newDocumentBuilder(); 29 30 Document doc=builder.parse(args[0]); 31 Document updateDoc=builder.parse(args[1]); 32 33 XUpdate updater=new XUpdate(new DOMDocumentUpdater(), DocumentNavigator.getInstance()); 34 updater.runUpdate(doc, updateDoc.getDocumentElement()); 35 36 OutputFormat o=new OutputFormat("xml", "ISO-8859-1", true); 37 o.setIndenting(true); 38 o.setIndent(2); 39 o.setPreserveSpace(true); 40 XMLSerializer serial=new XMLSerializer(System.out, o); 41 serial.serialize(doc); 42 System.out.println(); 43 } 44 catch (Exception e) 45 { 46 e.printStackTrace(); 47 System.exit(1); 48 } 49 } 50 } 51