krysalis-viprom/src/java/org/krysalis/viprom/utils XsltUtils.java,NONE,1.1

[email protected]
Newsgroups gmane.comp.krysalis.metamorphosis.cvs
Message-ID <[email protected]>
Update of /cvsroot/metamorphosis/krysalis-viprom/src/java/org/krysalis/viprom/utils
In directory sc8-pr-cvs1:/tmp/cvs-serv21451/src/java/core/org/krysalis/viprom/utils

Added Files:
	XsltUtils.java 
Log Message:
Still trying to ensure SF.net CVS has this...

--- NEW FILE: XsltUtils.java ---
/*
 * Created on Oct 27, 2003
 */
package org.krysalis.viprom.utils;

import java.io.StringReader;

import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.URIResolver;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamSource;

import org.krysalis.version.util.SystemUtils;
import org.krysalis.version.util.dom.DOMUtils;
import org.w3c.dom.Document;

/**
 * @author ajack
 */
public class XsltUtils {
	private static TransformerFactory l_factory = null;

	static {
		l_factory = TransformerFactory.newInstance();
	}

	// :TODO: From resource (i.e. in JAR) via clasloader
	// have pre-defined XSLTs in there 
	// :TODO: named or groups?

	public Transformer getTransformerFromURL(String url, URIResolver resolver)
		throws Exception {
		Transformer transform = l_factory.newTransformer(new StreamSource(url));

		if (null != resolver)
			transform.setURIResolver(resolver);

		return transform;
	}

	public Transformer getTransformerFromString(
		String data,
		URIResolver resolver)
		throws Exception {
		Transformer transform =
			l_factory.newTransformer(new StreamSource(new StringReader(data)));

		if (null != resolver)
			transform.setURIResolver(resolver);

		return transform;
	}

	public Document transform(Transformer transform, Document input)
		throws Exception {

		// Create a documemt ..							
		Document output = DOMUtils.createDocument();

		transform(transform, input, output);

		return output;
	}

	public Document transform(
		Transformer transform,
		Document input,
		Document output)
		throws Exception {
		DOMSource in = new DOMSource(input);
		DOMResult out = new DOMResult();

		DOMUtils.dump(SystemUtils.getSystemOut(), input);

		transform.transform(in, out);

		//:TODO:
		DOMUtils.crossInsert(
			output,
			DOMUtils.getRootElement(output),
			out.getNode());

		DOMUtils.dump(SystemUtils.getSystemOut(), output);

		return output;
	}

}




-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.