转换过程取得了成功,但它显示转换失败的氧气(xml到json)

时间:2016-12-02 09:51:52

标签: json xml xslt

当我使用氧气向Json进程执行xml时,我在相应的文件夹中成功获得了json文件,但氧气说转换失败了。实际上我正在将单个xml转换为输出中的3个json文件,所以

中的任何问题

我使用的Xml文件:

<front>
  <Settings>
    <code>W3333</urlcode>
    <url>http://mlucenter.com/like/api</apiurl>
  </Settings>
</front>
<body>
  <Count>2</Count>
  <line>linear-gradient</line>
</body>
<back>
  <buttons>
    <button/>
  </buttons>
  <banner/>
</back>

我使用下面的xslt将front,body和back xml分隔成front.json,body.json和back.json:

line no: 46 <xsl:template match="front">
               var headerConfig = {
              <xsl:apply-templates/>
                       };
            </xsl:template>


 line no: 212   <xsl:template match="front">
               <xsl:result-document href="front.json">
                 <xsl:next-match/>
               </xsl:result-document>
            </xsl:template>

    <xsl:template match="body">
       <xsl:result-document href="body.json">
         <xsl:next-match/>
       </xsl:result-document>
    </xsl:template>

    <xsl:template match="back">
       <xsl:result-document href="back.json">
         <xsl:next-match/>
       </xsl:result-document>
    </xsl:template>

我使用saxon-PE 9.6.0.7进行转换,使用氧气输出选项卡作为空白。第46行定义其他标记,第212行定义转换。我怎么能同时给予

我在氧中发生的错误是

    Engine name: Saxon-PE 9.6.0.7
    Severity: warning
    Description: XTRE0540: Ambiguous rule match for /MLU/selectReflect[1]/front[1] Matches both "element(Q{}front)" on line 212 of file:/D:/backup/Saf/Bramstein%20transforms%20XSL/Bramstein%20transforms.xsl and "element(Q{}front)" on line 46 of file:/D:/backup/Saf/Bramstein%20transforms%20XSL/Bramstein%20transforms.xsl
    URL: http://www.w3.org/TR/xslt20/#err-XTRE0540
.
.
.

请建议我,是我做得对。因为文件在相应的文件夹中转换得很好。提前致谢

1 个答案:

答案 0 :(得分:0)

对于这两组模板,我已合并为单一组,如下所示

line no: 46 <xsl:template match="front">
               var headerConfig = {
              <xsl:apply-templates/>
                       };
            </xsl:template>


 line no: 212   <xsl:template match="front">
               <xsl:result-document href="front.json">
                 <xsl:next-match/>
               </xsl:result-document>
            </xsl:template>

我换成了

<xsl:template match="front">
               <xsl:result-document href="front.json">
                var headerConfig = {
               <xsl:apply-templates/>
                       };
               </xsl:result-document>
            </xsl:template>