在xslt中获取循环内迭代元素的属性

时间:2014-10-29 05:44:44

标签: css xml xslt xpath

我想知道如何在xslt中循环遍历循环元素的属性。 我有以下xml结构:

<catalog>
    <cd v="1">
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
    </cd>
    <cd v="2">
        <title>Hide your heart</title>
        <artist>Bonnie Tyler</artist>
        <country>UK</country>
        <company>CBS Records</company>
        <price>9.90</price>
        <year>1988</year>
    </cd>

我的xslt如下:

 <xsl:for-each select="catalog/cd">
  <tr>
    <td><xsl:value-of select="../cd/@v"/></td>
    <td><xsl:value-of select="title"/></td>
    <td><xsl:value-of select="artist"/></td>
  </tr>
  </xsl:for-each>

这个xslt会发生什么,它只从第一个标签中获取cd的属性。因此,对于所有行,值将为1.如果有更多元素,我如何让它迭代其他属性值?我做错了吗?

1 个答案:

答案 0 :(得分:0)

而不是:

<xsl:value-of select="../cd/@v"/>

简单地使用:

<xsl:value-of select="@v"/>