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