我的 XML 为我提供了分配给不同 mmids 的多个图像:
<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
的两种元素使用相同的名称是一种肮脏的恶作剧;它使您对数据所做的一切变得更加困难。尝试找出您做了什么让他们如此生气,并弥补他们。只是对智者说一句话。)
关于xslt - 如何仅在xslt中选择第一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16928121/