这是XML表
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="CD-Catalog-New.xsl"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<years>
<year>1985</year>
<year>1986</year>
<year>1987</year>
</years>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<years>
<year>1988</year>
<year>1988</year>
</years>
</cd>
这是当前使用的XSL代码
<xsl:for-each select="years">
<td><xsl:value-of select="."/></td>
</xsl:for-each>
Columns
Year1 Year2 Year3
1985 1986 1987
1988 1988
想要
Columns
Year1 Year2 Year3
1985 1986 1987
1988 1988
应该很容易,但是在任何地方都找不到此示例。 刚开始学习XSL
答案 0 :(得分:0)
在您的XML中,每个years
只有一个cd
元素,因此进行<xsl:for-each select="years">
只会选择该单个元素。
在具有多个后代的元素上执行xsl:value-of
时,它将把所有这些后代的文本值连接在一起,这就是为什么所有年份在一个单元格中一起显示的原因。
您应该执行此操作以分别选择子year
元素。
<xsl:for-each select="years/year">