I have to transform xml file according to xls file and I use javax.xml.transform.* but this approach has limitations. I can't use xsl with a size larger than more 64kB. GregorSamsa.
Is there any a library in java to transform according to xsl > 64kB?
Related
Need some inputs on the below problem.
I have a flat file which contains Accounts numbers
Account1:Valid
Account2:Valid
Account3:Invalid
There is another system generated XML whose contents are transformed in Java via a Transformer class through an XSL file.
I need to enhance the XSL file so that it takes Accounts from flat file into consideration and based on Valid or Invalid status, generate the o/p response XML.
Any pointers on how to approach this? In Java application, I have done simple transformation. But how to enhance to take data from Flat File into consideration ?
If you want to do it with the input as shown, then you need to use XSLT 2.0 and later to use unparsed-text("accounts.txt") to read in the text file and for instance parse it with tokenize(unparsed-text("accounts.txt"), '\n') into lines and/or further with xsl:analyze-string.
XSLT 2.0 is supported in Java by Saxon 9 from http://saxon.sourceforge.net/.
With XSLT 1.0 all you could do is pass in a string parameter with the file contents and then use the rudimentary string functions in XPath 1.0 and named templates to extract the data.
I have a requirement to transform an incoming JSON to an output JSON. For this I am looking for a solution that can work based on templates. What I have in my mind is a solution on lines of XSLT transformation that allows converting an XML to a desired output format (XML, HTML, Text) defined by the style sheet.
One option(or rather a workaround) to use XSLT is to convert JSON to XML that is:
input JSON -> XML -> transform -> output JSON
This approach would have a performance overhead of converting JSON to XML and this would become prominent as the size of incoming object increases.
I found a Node/client layer solution that transforms JSON based on the rules specified in a template. More details about can be found [here][1]. However, I was not able to find any solution that works for a java based application.
Any thoughts/help in terms of solution/frameworks to resolve this would be really helpful.
Thanks.
You could try JOLT, advertised as a JSON to JSON transformation library written in Java.
Or you can search this thread for other libraries and tools which can transform JSON.
The new XSLT 3.0 draft also includes support for JSON as input and output format. Saxon has already started an implementation and seems to support for the JSON part.
You could try JSLT, which is a transform language where you write the fixed part of the output in JSON syntax, then insert expressions to compute the values you want to insert in the template. It's quite similar to how XSLT and XPath work together.
It's implemented in Java on top of Jackson.
For simple transformations you can use jmom library.
For a complex transformation you can use template framework like freemarker.
And convert json data to Map/List form using json library so it can be used by template framework.
I have an XML file of size 130 MB. I am trying the read the xml file chunk by chunk which I was able to do. I need a way to transform this chunk to HTML using xslt parser.
I am trying to implement in the same way that is mentioned in "http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/"
Here they have given an example on how to get xml chunk by chunk. But not provided any information on how to transform this chunk to HTML.
Can anybody provide me a snippet/suggestions using the same example provided in the above link.
I am trying to create HTML file from the result of an execution. The result is in the form of XML. There are few transformers that I can use to transform XML to HTML using XSLT file.
Other thing I will also have is the JAVA object of result which I can use for converting it to HTML.
Which of the above two approach is better and is there any API that I can use to convert java object to HTML other than XSLT or FILE I/O.
any one help?
I believe you have to go by xml (either directly or generated from your java object by jaxb).
In principle the templating frameworks (Velocity, Freemarker ...) can let you prepare a template into which you can inject your java object and render the response as you whish. But personally I think it will be easier/simple just to transform the xml that you already have
I want to convert XML into binary data in Java? What is the fastest and easiest way to do this?
Is there any internal Java method that I can use?
If you want to just compress the xml then you can read it and use either GZIPOutputStream or ZipOutputstream as described here.