Xml XSLT文件-每个函数的问题

Xml XSLT文件-每个函数的问题,xml,xslt,Xml,Xslt,我有一个类似于下面的文件: <catalog> <cd0> <title>Empire Burlesque</title> <artist>Bob Dylan</artist> <country>USA</country> <company>Columbia</company> <

我有一个类似于下面的文件:

  <catalog>
    <cd0>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year></cd0>
    <cd1>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
    </cd1>
    <cd2>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
    </cd2>
    .
    .
    .
</catalog>

皇帝讽刺剧
鲍勃·迪伦
美国
哥伦比亚
10.90
1985
皇帝讽刺剧
鲍勃·迪伦
美国
哥伦比亚
10.90
1985
皇帝讽刺剧
鲍勃·迪伦
美国
哥伦比亚
10.90
1985
.
.
.
我想提取节点
等的任何元素。。。每个函数都有一个函数,但我找不到如何实现它


你能帮我一下吗?

大致猜猜你想要达到什么目标,这里有一些评论:

XSLT中的循环元素很可能是处理XML标记的典型初学者方法。在XML中,您必须改变您的想法。这意味着不循环标记,而是应用符合特定路径(xpath)的模板

以下是检查年份:

  <xsl:template match="cd[year/.&gt;1985]">
    <li>
   <xsl:value-of select="title"/>
    </li>
  </xsl:template>
只是指:

对每个属性(@)节点或(|)每个标记节点(*或node())使用此模板,并将此节点复制到输出文档,递归应用并迭代源文档。注释标记被忽略


希望这能给每一个新手一个提升!一旦你知道如何使用它,它实际上非常酷,非常有效。

最好向我们展示你想要实现的输出,以及你编写的不起作用的代码,然后我们可以看到你的困境,以及语言规范中是否有某些特定部分需要建议。仅供参考,
xsl:for each
不是一个循环,在这里使用它不仅可以缩短代码,还可以减少处理量。
  <xsl:template match="cd[@id='1']">
    <li>
      <xsl:value-of select="title"/>
    </li>
  </xsl:template>
  <xsl:template match="cd[year/.&gt;1985]">
    <li>
   <xsl:value-of select="title"/>
    </li>
  </xsl:template>
<xsl:template match="*">

</xsl:template>
<xsl:template match="@* | node()">
    <xsl:copy>
        <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
</xsl:template>