如何使用XSLT转换JSON?

时间:2016-03-15 16:59:13

标签: json xml xslt

我有以下XSLT文件,它已经在使用我们在ActiveMQ上的XML文件。问题是我们正在升级系统,我们不再拥有XML视图。相反,我们有一个URL,在JSON中返回队列信息。

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/">
        <html>
            <body>
            <h2>PROJECT Notification</h2>
            <div style="width:600px;background-color:#e5eecc;border:1px solid #98bf21;margin:10px;">
                <table border="1" style="border-style:dashed">
                    <tr bgcolor="#9acd32">
                        <th width="300px;">Queue Name</th>
                        <th>Queue Size</th>
                    </tr>
                    <xsl:apply-templates select="queues" />
                </table>
            </div>
          </body>
       </html>
    </xsl:template>

    <xsl:template match="queue">
        <tr>
            <td><xsl:value-of select="@name"/></td><td><xsl:value-of select="./stats/@size" /></td>
        </tr>
    </xsl:template>
</xsl:stylesheet> 

我想知道是否可以继续使用同一个XSLT文件,只需修改标签即可开始从JSON URL读取。

我使用camel路由到这个XSLT,但我不想创建一个处理器来将JSON转换为XML。相反,我想立即使用JSON。

1 个答案:

答案 0 :(得分:-1)

XSLT对XML输入进行操作,而不是JSON输入。 (虽然你可以使用XSLT 2.0字符串处理工具解析JSON,但它仍然不适合这项工作。)

您的HTML目标非常简单,因此从XML / XSLT迁移不应该像其他情况那样具有挑战性。查看基于JavaScript的模板引擎,例如Mustache.jsHandlebars.js, Underscore.jsHogan.js ......