XSLT将JSON转换为XML错误“序言中不允许内容”

时间:2019-09-23 10:30:30

标签: json xslt saxon xslt-3.0

我想将JSON文件转换为xml。

java -jar c:\ saxon \ saxon9he.jar -s:C:json -xsl:C:test.xsl -o:C:xml

用于转换的XSLT:

>     <?xml version="1.0" encoding="ISO-8859-1"?>
>     <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
>         <xsl:output method="xml" indent="yes"/>
>         <xsl:param name="input" select="'../json/test.json'"/>
>         <xsl:template name="xsl:initial-template">
>             <xsl:apply-templates select="json-to-xml(unparsed-text($input))" mode="copy"/>
>         </xsl:template>
>         <xsl:template match="node() | @*" mode="copy">
>             <xsl:copy>
>                 <xsl:apply-templates select="node() | @*" mode="copy"/>
>             </xsl:copy>
>         </xsl:template>    
>     </xsl:stylesheet>

我认为处理器希望XML文件作为输入。我必须使用哪个处理器,或者还有其他错误?

谢谢!

1 个答案:

答案 0 :(得分:0)

有命令行选项-it,可用于使用命名模板xsl:template name="xsl:initial-template"开始处理。然后,您就可以在命令行中添加任何可以作为参数传递的JSON文件,就像您的示例已经在代码中所做的那样,在命令行上您可以添加input=foo.json来更改/设置该全局参数。因此,根本不要使用-s,而要使用-it(如给定),并在您拥有的代码中或在命令行中为input参数添加正确的参数值。