java


convert JSON to XML using XSLT 3 in java


When i was trying to transform JSON with XSLT to XML I am not able to transform, it is throwing the prolog exception, when i put the Json in tags i am able to transform. Can any one give an example how to transform from Json to XML with XSLT3.0.
Here's one example using json-to-xml(). It processes all json files in a specified directory (collection param).
I've also used json-doc() with uri-collection() and map:get() to process very simple json files.
JSON (File "so.json" based on the JSON in the question How to convert json to xml using xslt)
{"Order": {
"InvestmentAccount": {"AccountNumber": "10"},
"Parcel": {
"Limit": "0",
"ExpiryDate": "1900-01-01T00:00:00",
"Asset": [
{
"Open": "25.15",
"High": "25.15",
"Low": "25.11",
"Close": "25.87"
},
{
"Open": "25.15",
"High": "25.15",
"Low": "25.11",
"Close": "25.87"
}
]
},
"OrderDate": "2012-10-11T21:46:03.6489906+11:00"
}}
XSLT 3.0 (Tested using Saxon-HE 9.7.0.8J from the command line specifying init as the initial template.)
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:map="http://www.w3.org/2005/xpath-functions/map"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs map">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="collection" select="'file:///C:/some/dir'"/>
<xsl:template match="#*|node()">
<xsl:copy>
<xsl:apply-templates select="#*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template name="init">
<xsl:for-each select="uri-collection(concat($collection,'?select=*.json'))">
<xsl:variable name="uri" select="."/>
<xsl:variable name="filename" select="tokenize($uri,'/')[last()]"/>
<xsl:message>Processing json file: <xsl:value-of select="$filename"/>...</xsl:message>
<xsl:variable name="json" select="unparsed-text($uri)"/>
<xsl:result-document href="{substring-before($filename,'.')}.xml">
<xsl:apply-templates select="json-to-xml($json)"/>
</xsl:result-document>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
XML Output ("so.xml")
<map xmlns="http://www.w3.org/2005/xpath-functions">
<map key="Order">
<map key="InvestmentAccount">
<string key="AccountNumber">10</string>
</map>
<map key="Parcel">
<string key="Limit">0</string>
<string key="ExpiryDate">1900-01-01T00:00:00</string>
<array key="Asset">
<map>
<string key="Open">25.15</string>
<string key="High">25.15</string>
<string key="Low">25.11</string>
<string key="Close">25.87</string>
</map>
<map>
<string key="Open">25.15</string>
<string key="High">25.15</string>
<string key="Low">25.11</string>
<string key="Close">25.87</string>
</map>
</array>
</map>
<string key="OrderDate">2012-10-11T21:46:03.6489906+11:00</string>
</map>
</map>
Since I'm doing an xsl:apply-templates along with the identity transform, the XML from json-to-xml() is output unchanged. I can easily add templates to transform that XML into something else. (Be sure to pay attention to the http://www.w3.org/2005/xpath-functions default namespace.)

Related Links

Spring Boot test class wont inject beans
Using unique variable names in Xtend loop (Code Generation)
Using Scanner.in with java Applet
Sencha GXT themebuilder 3.1.0 Beta does not work with Sencha Gxt 3.1.0
AmazonClientException: Data read has a different length than the expected
SpringMVC: how to get the value of #RequestMapping in the function
convert java.io.inputstream to java.sql.blob
androidstudio constructor error
NaN Error w/ Quadratic Equation Calculator
Java - Use binarySearch to find # of occurrences of certain element in array, without If
Injecting EJB in spring
Setting request body on JAX-RS 2.0 Client API With RestEasy
Morphia #Version Not Working
Threadpool Deadlock: designing against or detecting
Random array from resource Android
JAXB: How to convert Map to array-like format

Categories

HOME
testng
openmp
proxy
pycharm
google-api-php-client
spagobi
ravendb
pheatmap
nano-server
user-input
windows-phone-7
decomposition
openrefine
amazonsellercentral
visjs
jasonette
ehcache
wkwebview
google-search-api
xpages-ssjs
cas
react-css-modules
internet-explorer-9
rst2pdf
fluentvalidation
strncpy
libuv
lightswitch-2013
socialengine
ecto
oracle-fusion-middleware
titanium-mobile
caret
scaffold
android-browser
starteam
service-discovery
az-application-insights
unobtrusive-validation
ensembles
core-plot
texmaker
nxlog
modelmapper
youcompleteme
celery-task
mu
typed-lambda-calculus
spring-mongodb
wdf
static-ip-address
rotativa
android-textview
elements
home-directory
fody
mikroc
superstack
php-internals
ios4
execute
angular-leaflet-directive
ionic
pick
id3v2
socketexception
websocket4net
googlemock
ceil
aapt
dml
phpthumb
mysql-error-1062
picturefill
resty-gwt
intentservice
industrial
floating-point-precision
xsockets.net
inbox
dataadapter
qt-faststart
spring-validator
pvrtc
chuck
isnullorempty
funscript
windows-phone-7.1.1
dotnethighcharts
servicehost
sproutcore-2
xsdobjectgen
nhibernate.search
brewmp
exchange-server-2003
adrotator

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html