Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用XSLT将XML转换为HTML表_Html_Xml_Xslt - Fatal编程技术网

用XSLT将XML转换为HTML表

用XSLT将XML转换为HTML表,html,xml,xslt,Html,Xml,Xslt,我有一个XML文件,需要使用XSLT将其转换为HTML表。我试着效仿W3C学校的一个例子。在这里输入它太麻烦了,因为它不是英文的,但我将尝试解释我的问题: 我有一个根元素“catalog”和多个子元素“cd”。在XSLT中编辑表时,我只获取第一个子节点“cd”的值 有人知道错误在哪里吗?假设您使用的XML如下所示 <catalog> <cd> <title>Empire Burlesque</title> &

我有一个XML文件,需要使用XSLT将其转换为HTML表。我试着效仿W3C学校的一个例子。在这里输入它太麻烦了,因为它不是英文的,但我将尝试解释我的问题:

我有一个根元素“catalog”和多个子元素“cd”。在XSLT中编辑表时,我只获取第一个子节点“cd”的值


有人知道错误在哪里吗?

假设您使用的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>

皇帝讽刺剧
鲍勃·迪伦
10.90
1985
隐藏你的心
邦尼泰勒
9.90
1988
最成功的
多莉·帕顿
9.90
1982
将数据打印到包含所有值的表中的XSLT如下所示。重复的
元素的
循环将生成数据的表格格式

<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>

标题
艺术家
价格
年

您确实需要显示XSLT,否则几乎不可能有人告诉您的错误在哪里。您还应该展示一个XML示例。它不需要完整的XML,但可能只包含一个或两个
cd
元素。如果CD的名称不是英文的,这无关紧要。谢谢。如果您希望有人帮助您调试问题,请提供。