Subject:Urgent Eval: How2 w/ Possibly Unique Conversion Needs Author:Joe Weder Date:12 Dec 2006 10:35 AM
I am evaluating the latest StylusStudio Enterprise for our current development.
I have, I think, a unique need and wanted to know if anyone could help expidite the solution during our short eval time.
Problem:
I need to be able to convert a single CSV row at at time to XML. I see how to convert files using the XQuery mapping tools. Is there a way to to generate code that can map a row at a time programatically?
Here is a quick eexample that shows how to convert a CSV passed in as String to XML
StylusFileFactory.unlockAPI("Installation ID Here");
String csv = "1, \"Bob's Bar\", 1234, 98767";
ConverterFactory.newInstance().newConvertToXML("adapter:CSV").convert(
new StreamSource(new ByteArrayInputStream(csv.getBytes())),
new StreamResult(System.out));
If you need to connect the converter into XSL Transformation, see the following solution
// configure the XSLT to receive SAX events from the converter
TransformerHandler th = ((SAXTransformerFactory)TransformerFactory.newInstance()).newTransformerHandler(new StreamSource("simple.xsl"));
th.setResult(new StreamResult(System.out));
SAXResult convToXMLSAXResult = new SAXResult(th);
// run the converter
String csv = "1, \"Bob's Bar\", 1234, 98767";
StreamSource streamSource = new StreamSource(new ByteArrayInputStream(csv.getBytes()));
ConverterFactory.newInstance().newConvertToXML("adapter:CSV").convert(streamSource, convToXMLSAXResult);