【发布时间】:2011-03-04 00:43:43
【问题描述】:
我有以下包含图像数据的 xml 文件:
<images>
<aid>1</aid>
<imid>1</imid>
<src>img1.jpg</src>
</images>
<images>
<aid>1</aid>
<imid>2</imid>
<src>img2.jpg</src>
</images>
<images>
<aid>1</aid>
<imid>3</imid>
<src>img3.jpg</src>
</images>
<images>
<aid>2</aid>
<imid>1</imid>
<src>img1.jpg</src>
</images>
<images>
<aid>2</aid>
<imid>2</imid>
<src>img2.jpg</src>
</images>
<images>
etc...
我想从每个 aid 只获得最后一个 imid
并将其作为结果呈现,在本例中为:
aid=1 和 imid=3 和 src=img3.jpg
aid=2 and imid=2 and src=img2.jpg
(在原始文件中,一个aid可以包含很多imid 's)
下面的 xsl 选择只会给我所有图像的完整选择中的最后一张图像。
<xsl:for-each select="(/images[aid>=1 and imid])[last()]">
以下 xsl 选择为我提供了 aid 中每个第一个 imid 的结果。
<xsl:for-each select="(/images[aid>=1 and imid=1])">
我如何调整该代码,使其只给我每个aid的最后一个imid?
【问题讨论】:
-
您说您想要每个
aid中的最后一个imid,但这不是您的源 XML 的形成方式。您可能想再看看您的输入或修正您的示例。 -
好问题,+1。请参阅我的答案以获得完整、简短且简单的 XSLT 1.0 解决方案。 :)