使用XSLT将XML转换为HTML表

时间:2018-07-19 15:03:26

标签: html xml xslt

我有一个XML文件,需要使用XSLT将其转换为HTML表。我尝试遵循w3cschools的示例。在这里键入它太麻烦了,因为它不是英语,但我会尽力解释我的问题:

我有一个根元素“目​​录”和多个子元素“ cd”。当我在XSLT中编辑表时,我仅获得第一个子节点“ cd”的值。

谁能说出错误在哪里?

1 个答案:

答案 0 :(得分:0)

假设您使用的XML如下所示

<catalog>
    <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <price>10.90</price>
        <year>1985</year>
    </cd>
    <cd>
        <title>Hide your heart</title>
        <artist>Bonnie Tyler</artist>
        <price>9.90</price>
        <year>1988</year>
    </cd>
    <cd>
        <title>Greatest Hits</title>
        <artist>Dolly Parton</artist>
        <price>9.90</price>
        <year>1982</year>
    </cd>
</catalog>

将所有值打印到表中的XSLT如下。重复的<xsl:for-each>元素的<cd>循环将产生数据的表格格式。

<xsl:template match="catalog">
    <html>
        <body>
            <table border="1" cellspacing="0" cellpadding="2"> 
                <tr bgcolor="#9acd32">
                    <th style="text-align:left">Title</th>
                    <th style="text-align:left">Artist</th>
                    <th style="text-align:right">Price</th>
                    <th style="text-align:right">Year</th>
                </tr>
                <xsl:for-each select="cd">
                    <tr>
                        <td style="text-align:left"><xsl:value-of select="title" /></td>
                        <td style="text-align:left"><xsl:value-of select="artist" /></td>
                        <td style="text-align:right"><xsl:value-of select="price" /></td>
                        <td style="text-align:right"><xsl:value-of select="year" /></td>
                    </tr>
                </xsl:for-each>
            </table>
        </body>
    </html>
</xsl:template>