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

RabbitMQ Queue Max Priority Issue
how to add to the x bounds of a jlabel upon button press
Appium-Java : Getting “session could not be created ”error while executing below android app automation code
Broadcast using TCP protocol with sockets in JAVA
Android UnknownHostexception but Permissions granted
How can I represent the below json schema using Java Objects?
Data Type conversion error in java [duplicate]
Processing: Problems with Particles and motion detection
Regex - links not to allow double question mark Java
Programmatically (Java) retrieving the last Git tag for placing version info in software
How to use MavenBuildHelper in Maven mojo
Eclipse JEE Neon Refactoring a Project leaves two project files for a single folder on disk
How to loop through a list of URLs containing zip files and download the zip files (or extract)
SharedPreferences doesn't seem to save the variables
MongoDB: Case Insensitive search (Java)
Android , Deserialize JSON Array that have different types using Jackson

Categories

HOME
testing
osgi
minimum-spanning-tree
tizen
single-sign-on
routes
gis
razor
leon
rubygems
electronics
dxl
retrofit
node-notifier
handsontable
commonmark
serverless-framework
windows-7-x64
oxyplot
grails3
tokenize
trading
pingfederate
fopen
typo3-6.2.x
webkitspeechrecognition
nat
instant-messaging
google-rich-snippets
webtest
subset-sum
nssegmentedcontrol
host
ios5
simplexml
restlet
dartium
multilingual
gesture
mixture-model
eclipse-scout
ibpy
arena-simulation
outlook-api
outlook-2013
rainbowtable
atomicity
paxos
dropbox-php
tizen-native-app
yii2-extension
libusb-win32
sqldf
bind9
sonarlint-vs
specrun
jquery-filter
static-ip-address
azure-virtual-network
database-optimization
ubuntu-10.04
testng-dataprovider
pyke
phpcas
separator
qtableview
msys
sdhc
collapse
pundit
0xdbe
event-bubbling
sailfish-os
fluid-dynamics
composite
notify
java.util.concurrent
ceil
android-radiobutton
valueconverter
undefined-reference
geos
aqtime
google-cloud-save
tws
sabredav
chuck
funscript
datawindow
pysimplesoap
appconkit
pendrive
eclipse-templates
heartbeat
xtype
inotifycollectionchanged
xfbml
gamequery
webkit.net
iweb
mtj
avatar
boost-smart-ptr
genealogy
ubuntu-9.04
data-acquisition
commodore
lzh
caching-application-block

Resources

Encrypt Message



code
soft
python
ios
c
html
jquery
cloud
mobile