我的XML为我提供了分配给不同mmid的多个图像:

<Mediendaten>
    <Mediendaten mmid="22404">
        <url size="original">A 22404 FILE</url>
        <url size="thumb">ANOTHER 22404 FILE</url>
    </Mediendaten>
    <Mediendaten mmid="22405">
        <url size="original">A 22405 FILE</url>
        <url size="thumb">ANOTHER 22405 FILE</url>
    </Mediendaten>
<Mediendaten>


我的XSLT仅选择size = thumb的网址:

<xsl:template match="/Mediendaten">
<xsl:apply-templates select="Mediendaten/url">
</xsl:apply-templates>
</xsl:template>

<xsl:template match="Mediendaten/url">
<xsl:if test="@size = 'thumb'">
<img width="280" border="0" align="left">
<xsl:attribute name="src"><xsl:value-of select="."/></xsl:attribute>
</img>
</xsl:if>
</xsl:template>


但是,我只需要第一个mmid的缩略图(在本例中为22404)。我无法控制mmid值。

如何停止我的模板,使其仅输出第一个mmid的拇指文件?

非常感谢您的帮助!

最佳答案

最简单的方法是更改​​/Mediendaten的模板:

<xsl:template match="/Mediendaten">
  <xsl:apply-templates select="Mediendaten[@mmid][1]/url"/>
</xsl:template>


[@mmid]将选择约束到带有mmid属性的子Mediendaten元素,[1]将选择约束到其中的第一个。

附言设计您使用XML的人都会讨厌您。 (为现在标记为Mediendaten的两种元素使用相同的名称是一种肮脏的烂把戏;它会使您对数据进行的所有操作都变得更加困难。尝试弄清楚您所做的操作如何使它们如此糟糕,并对其进行修改。 。。。。。。。

09-03 21:08