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

It's not for loop it's for each loop [duplicate]
Spring data mongo not binding some parameters
How do I grab a specific sub-string of a file?
OnClick event for Radio Buttons are not working
Custom URL Scheme Handling with Java
How to get specific key value from a nested TreeMap
documents are not printing in sequence in java
How is attribute a String value from a message like on here?
javafx communication between controller and main
itext not showing all lines
Too many open files exception on AwS machine with high configuration
What is the difference
SKHeading blue color triangle:How to remove/edit SKHeading trianfle header
How to mock method that called in other method while using Spring Dependency Injection?
Newlines in Outlook 365 e-mail sent from Play Java
JPA merge throws exception Duplicate entry for key 'PRIMARY' during flush

Categories

HOME
office365api
rsync
leon
infragistics
volttron
row
apache-cayenne
commonmark
opentracing
firefox-webextensions
emulator
swingx
conemu
css-animations
claims-based-identity
java-7
underflow
status
poltergeist
subdomains
sql-server-2012-express
grails-3.1
pim
caret
amazon-kinesis-kpl
gesture
jna
sas-visual-analytics
optix
texmaker
no-www
dotcover
lowpass-filter
slickedit
gcsfuse
color-profile
google-cdn
home-directory
file-writing
merge-conflict-resolution
nsviewcontroller
dataview
cloudbees
energy
kendonumerictextbox
pervasive-sql
jms2
endeca-workbench
comobject
fouc
ibaction
microbenchmark
ami
jsapi
operator-precedence
tween
mdt
yorick
doskey
valuechangelistener
mysql-error-1062
transcoding
resty-gwt
gnu-smalltalk
c18
aqtime
excel-2003
django-nonrel
random-seed
html-editor
drools-planner
gdata-api
dice
first-responder
datawindow
parametric-equations
uiviewanimation-curve
nsobject
mongomapper
site.master
ncqrs
backcolor
avatar
xetex
geneva-server
document-conversion

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