自动生成XSLT - 通用/默认XSLT

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动生成XSLT - 通用/默认XSLT相关的知识,希望对你有一定的参考价值。

这应该不是很复杂,但我在互联网上搜索并找不到这样的工具。

此工具应采用XML或XSD文件并生成XSLT。将此XSLT应用于XML时,结果是用户友好的html页面。

然后开发人员接受程序生成的XSLT并根据他的要求进行必要的调整。

对于大型XML文件而言,这些好处是显而易见的,您可以使用“默认”开始处理,而不是从头开始查找3000行XML文档。

答案

从“XSLT身份转换”开始可能是最简单的,它的原始形式如下所示:

<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

它基本上创建了XML文件的深层副本,因此它不是很有趣,但是它允许你在此期间装饰某些元素。

根据您希望初始HTML的样子,您可以通过添加特定模板来修饰它,或者更改核心递归模板来生成,比如说,嵌套的<div>元素......或者<ul> / <li>等等。

这可以是一个简单的开始:

<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <ul>
            <xsl:apply-templates select="*"/>
        </ul>
    </xsl:template>
    <xsl:template match="@*|node()">
        <li>
        <xsl:value-of select="local-name()"/>
        <xsl:if test="*">
            <ul>
               <xsl:apply-templates select="@*|node()"/>
            </ul>
        </xsl:if>
        </li>
    </xsl:template>
</xsl:stylesheet>

你可以玩任何东西,首先你可能想要不同的属性渲染,然后你的知名元素等。

以上是关于自动生成XSLT - 通用/默认XSLT的主要内容,如果未能解决你的问题,请参考以下文章

XSLT:无法将操作数转换为“结果树片段”

将 XSLT 转换的 XML 片段写入 XMLStreamWriter

用于在 HTML 中生成列表的 XSLT 通用模板

为啥 XSLT 默认输出所有文本?

HTML 之于 HAML 就像 XSLT 之于 ...?

XSLT 通用将结构值类型转换为单值字符串