freebsd-ports/textproc/jaxup/files/DOMXUpdater.java
Herve Quiroz 6ef2256b14 Added a new class and a launcher shell script to perform command-line XUpdate
processing using Jaxup:

$ jaxup-xupdater <source-doc.xml> <xupdate-doc.xml>

Bumped PORTREVISION to reflect this new feature.
2004-11-17 16:54:29 +00:00

52 lines
1.4 KiB
Java

/**
* DOMXUpdater: a command-line XUpdate processor.
*
* $FreeBSD$
*/
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.jaxen.dom.DocumentNavigator;
import org.jaxup.dom.DOMDocumentUpdater;
import org.jaxup.xupdate.XUpdate;
import org.w3c.dom.Document;
public class DOMXUpdater
{
public static void main(String[] args)
{
if (args.length != 2)
{
System.out.println("usage: DOMXUpdater <source document url> <XUpdate document url>");
System.exit(1);
}
try
{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse(args[0]);
Document updateDoc=builder.parse(args[1]);
XUpdate updater=new XUpdate(new DOMDocumentUpdater(), DocumentNavigator.getInstance());
updater.runUpdate(doc, updateDoc.getDocumentElement());
OutputFormat o=new OutputFormat("xml", "ISO-8859-1", true);
o.setIndenting(true);
o.setIndent(2);
o.setPreserveSpace(true);
XMLSerializer serial=new XMLSerializer(System.out, o);
serial.serialize(doc);
System.out.println();
}
catch (Exception e)
{
e.printStackTrace();
System.exit(1);
}
}
}