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

API 25 Changing language in APP
Non-blocking HTTP requests on HttpHandlers
Update object mapped to string using ObjectMapper
Why I can't deploy on Tomcat? Could not publish server configuration for Tomcat v7.0 Server at localhost. Multiple Contexts have a path of “/ROOT”?
How to write unit test of Vertical (vert.x application) using mockito and junit
Is it possible to stream double values from an array using scanner?
convert long to timestamp when downloading dates from BigQuery - java
if condition in logback - print log messages in two different folders
Java streams: group and sort by a previous mapping result?
Testing a rest service with JUnit
Options for calling IMS Transactions
Why the panel is not showing up?
how get and load method of hibernate work in second level cache
Spring JPA not initialize lazy properties even within transaction
Spark SASL not working on the emr with yarn
Android - Calling a function from a fragment

Categories

HOME
ibm-bluemix
xamarin
log4j
heroku
plot
relative-path
office365api
read-eval-print-loop
umd
webpack-2
windows-server
ojdbc
echarts
amazon-cloudformation
slurm
gorm
windows-10-universal
collectd
size
facebook-page
pythonanywhere
ab-testing
immutable.js
object-detection
mmap
cultureinfo
vlsi
apache-commons-io
poltergeist
replaceall
google-cloud-nl
tasklet
delicious-api
google-cloud-endpoints-v2
exuberant-ctags
siesta-swift
stringtemplate
asset-pipeline
force-layout
appfabric
devextreme
simplexml
restlet
serverside-rendering
hilbert-curve
avro4s
http-live-streaming
firebase-admin
eigenvalue
outlook-api
node-sass
slick-3.0
togetherjs
colorama
csound
tactic
qtwebview
mcafee
or-tools
angular-strap
azure-sdk
xml-attribute
firebaseui
connect-by
essence
captivenetwork
pagerank
two-factor-authentication
ios8-today-widget
prerequisites
simple-framework
django-unittest
inmobi
e10s
fscommand
block-device
c3
camanjs
tablelayout
relocation
fpml
responsive-slides
elliptic-curve
system.net.webexception
doskey
undefined-reference
dealloc
hyprlinkr
prettify
.aspxauth
tidy
android-screen-support
type-equivalence
clipper
selected
mt
funscript
multipage
wse3.0
bubble-chart
assembly-loading
subscript
infobox
horizontal-accordion
sql-server-profiler
mysql-error-1005
suppress
castle-monorail
privilege
yagni
premature-optimization
thread-local-storage
scripting-languages
mdac
rtml
ntvdm.exe

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
Mobile App
Mobile App
Mobile App