Saxon-HE XSLT中的序列化

问题描述

我正在使用XSLT执行从json到json的转换。

[
    {
        "fileName": "file1.xml","value": [
            {
                "data1": [
                    {
                        "data2": [
                            {
                                "data3": [
                                    {
                                        "data4": [
                                            {
                                                "tag1": [
                                                    "df"
                                                ],"tag2": [
                                                    "fg"
                                                ],"tag3": [
                                                    "ss"
                                                ]
                                            },{
                                                "tag1": [
                                                    "fg"
                                                ],"tag2": [
                                                    "ss"
                                                ],"tag3": [
                                                    "df"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    }]

要对json对象中的标签进行排序,我尝试使用saxon:property-order ..但在我的情况下,它不支持

因为我使用的是Saxon-HE 10.01版本。

这是我的xslt styleSheet

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jlib="http://saxonica.com/ns/jsonlib"
xmlns:map="http://www.w3.org/2005/xpath-functions/map"
xmlns:array="http://www.w3.org/2005/xpath-functions/array"
xmlns:saxon="http://saxon.sf.net/"

version="3.0">
<xsl:param name="input"/>
<xsl:output method="json"/>

<xsl:mode on-no-match="deep-copy"/>

<xsl:output method="json" indent="yes" saxon:property-order="tag1 tag2 tag3"/>
<xsl:template name="xsl:initial-template">
<xsl:variable name="in" select="parse-json($input)"/>

<xsl:variable name="out" as="map(*)*">

<xsl:for-each-group select="$in?*" group-by="?fileName">
<xsl:map>
<xsl:map-entry key="'fileName'" select="current-grouping-key()"/>
<xsl:map-entry key="'value'" select="map{'data1':array{map {'data2':array{map {'data3':array {map{'data4': array:join(current-group()?value?*?data1?*?data2?*?data3?*?data4)}}}}}}}"/>
</xsl:map>
</xsl:for-each-group>
</xsl:variable>

<xsl:sequence select="array{$out}"/>
</xsl:template>


</xsl:stylesheet>

我从Java代码中获得以下异常:-

xsl错误:在第11行的第516列输出 XTSE0020序列化参数Q {... / saxon.sf.net/}属性顺序在Saxon-HE中不可用

如何在saxon-he 10.中使用属性顺序。或者在saxon-he中使用其他任何功能来执行属性顺序机械化/分类机制?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...