来自xml的html树与xslt

时间:2018-04-09 07:19:29

标签: xml xslt

我是xml转换为html的新手。我有一个带有简单文件/文件夹结构的xml文件。

and

我希望有一个使用项目符号列表标签的html树。容器元素可以包含子容器和项目,item元素不能包含任何其他元素。也许以下的html代码段会对结果进行概述。

not

如何使用仅客户端xslt转换来获得结果?或者有更好的方法来实现目标吗?

迈克

1 个答案:

答案 0 :(得分:0)

以下解决方案不会输出确切的目标XML。这是一个有根据的猜测我想你想要的东西:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="text()" />

    <xsl:template match="structure">
        <ul>
            <xsl:apply-templates />
        </ul>
    </xsl:template>

    <xsl:template match="container|item">
        <li>
            <div class="{name()}">
                <xsl:value-of select="name" />
            </div>
            <ul>
                <xsl:apply-templates />
            </ul>
        </li>
    </xsl:template>

</xsl:stylesheet>

输出为:

<?xml version="1.0"?>
<ul>
    <li>
        <div class="container">Container A</div>
        <ul>
            <li>
                <div class="item">Item A</div>
                <ul/>
            </li>
            <li>
                <div class="container">Container A A</div>
                <ul>
                    <li>
                        <div class="item">Item B</div>
                        <ul/>
                    </li>
                    <li>
                        <div class="item">Item A B</div>
                        <ul/>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
    <li>
        <div class="container">Container B</div>
        <ul>
            <li>
                <div class="item">Item C</div>
                <ul/>
            </li>
        </ul>
    </li>
    <li>
        <div class="item">Item X</div>
        <ul/>
    </li>
</ul>

这应该足以作为创建完全符合您期望的XSLT的起点。