Re: [xsl] XSLT code for XML to JSON conversion?

Subject: Re: [xsl] XSLT code for XML to JSON conversion?
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 13 Dec 2019 10:26:57 -0000
However, the xml-to-json function on XSLT 3.0 doesn't convert arbitrary XML to
JSON; it requires you first to do a transformation to the XML structure that
reflects the JSON you want to produce.

Generally, off-the-shelf tools that convert arbitrary XML to JSON tend to
produce JSON that's not very nice to work with.

Michael Kay
Saxonica

> On 13 Dec 2019, at 10:12, O'Neil Delpratt oneil@xxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Hi,
>
> Saxon on the Java Platform would work fine on the command-line, but as Liam
said you have the Java runtime startup.
>
> Alternatively Saxon/C could equally fit your requirements. It is cross
compiled to native library, which can be run on the command-line using C/C++.
Saxon/C also comes with Python extension API.
>
> kind regards,
>
> O'Neil
>
>
>> On 12 Dec 2019, at 22:37, Steven D. Majewski steve.majewski@xxxxxxxxx
<mailto:steve.majewski@xxxxxxxxx> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx
<mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>> wrote:
>>
>> There are also non XSLT converters that use SAX: read XML and serialize out
as JSON.
>>
>> There are several node-js packages.
>> Python xmljson. https://pypi.org/project/xmljson/
<https://pypi.org/project/xmljson/> supports several different JSON encoding
conventions.
>>
>> And Ibm sure many others.
>> ( Ibve used the Python package, but not for any large projects.  )
>>
>> b Steve.
>>
>>
>>> On Dec 12, 2019, at 5:09 PM, Liam R. E. Quin liam@xxxxxxxxxxxxxxxx
<mailto:liam@xxxxxxxxxxxxxxxx> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx
<mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>> wrote:
>>>
>>> On Thu, 2019-12-12 at 21:32 +0000, Richard Fozzard
>>> richard.fozzard@xxxxxxxx <mailto:richard.fozzard@xxxxxxxx> wrote:
>>>> Hi Folks,
>>>>
>>>> We're looking to do conversion of relatively complex XML (i.e.
>>>> namespaces, attributes, repeating elements, xlinks) into JSON from
>>>> the
>>>> Unix command line to build a web page. We've  used the XML to JSON
>>>> feature in the Oxygen Developer tool, and it works well, but that's
>>>> a
>>>> GUI, not a command line tool.
>>>
>>> It's probably using XSLT under the hood, with a stylesheet that's
>>> usable e.g. with Saxon. You do pay the penalty of Java runtime startup,
>>> though.
>>>
>>> Note also that XSLT 3 includes a standard function to produce JSON; see
>>> https://www.w3.org/TR/xpath-functions-31/#json-to-xml-mapping
<https://www.w3.org/TR/xpath-functions-31/#json-to-xml-mapping>
>>>
>>> So you could just use xml-to-json() in XSLT. You may need Saxon EE for
>>> that, i'm not sure offhand.
>>>
>>> Of course, you could also just send XML to the Web client; what you are
>>> doing by using a complex transformation into JSON is moving the
>>> complexity from one developer to another. You could also generate HTML
>>> on the server, whic might make it easier to meet 508/WCAG requirements
>>> :)
>>>
>>> Liam
>>>
>>> --
>>> Liam Quin, https://www.delightfulcomputing.com/
<https://www.delightfulcomputing.com/>
>>> Available for XML/Document/Information Architecture/XSLT/
>>> XSL/XQuery/Web/Text Processing/A11Y training, work & consulting.
>>> Barefoot Web-slave, antique illustrations:  http://www.fromoldbooks.org
<http://www.fromoldbooks.org/>
>>>
>>
>> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
>> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/1363285> (by
email <applewebdata://6BDE66D7-3B12-4981-9CA2-7BDD7B8FA156>)
>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by
email <>)

Current Thread