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

JAVA mail api: Why you need Multipart in order to send email with attachment?
Do JFrame windows in Swing run on their own separate threads?
How to switch back to parent window in Selenium WebDriver?
Java pass method reference as parameter to other method
Detecting MIME-Type from DataHandler
How to use Selma's mapper to convert pojo with Lombok's annotations
Why my Array of JComboBox are not updated?
JPA Join table with SELECT
JAXB anyUri as local Fragment Identifier
JOOQ : getNextException call?
SFTP connect error - The message store has reached EOF
ORA-00933: SQL command not properly ended on jdbc call
listview error after returning from child activity
log4j write log message to different file
length field in Object Class
Java: unexpected type in function declaration [duplicate]

Categories

HOME
json.net
react-router
paw-app
amortized-analysis
electronics
onelogin
elasticsearch-hadoop
session-variables
user-input
izpack
numeral.js
nstableview
alignment
n-gram
circuit
vaadin7
systemc
footer
reactive-cocoa
jqwidget
oxyplot
tibco-mdm
php-openssl
angular2-aot
status
bootstrap-duallistbox
user-interaction
large-file-upload
procdump
nouislider
exuberant-ctags
perlin-noise
repo
atl
theano.scan
xenforo
particles.js
galen
fedex
gulp-sourcemaps
node-gyp
nomethoderror
eclipse-gef
sencha-touch-2.3
galleria
smartcontracts
clean-architecture
elgg
csound
libusb-win32
flow-control
arrow-keys
sqldf
nbconvert
dwscript
specrun
firmata
impresspages
fadeout
pagerank
tcpserver
vhd
lemon
formatjs
jsonpickle
c3
eol
tld
resty-gwt
multiprocessor
floating-point-precision
google-cloud-save
soundtouch
flash-builder4.5
pushbackinputstream
random-seed
mqx
simba
mhtml
google-email-migration
hosts-file
genshi
gamma
modelstate
dbal
substrings
webkit.net
data-driven
mtj
private-members

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