这个问题的表述非常松散,这对提供更有意义的解决方案没有帮助。
.
也就是说,下面的转换
:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<MYOBJ>
<ELEM>
<xsl:for-each select="/*/AAA/OBJ/OBJVERS">
<xsl:sort select="@CREATED" order="descending"/>
<xsl:if test="position() = 1">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:for-each>
</ELEM>
<IMAGE>
<xsl:copy-of select="/*/DDD/FILE"/>
</IMAGE>
</MYOBJ>
</xsl:template>
</xsl:stylesheet>
当应用于人工和人为提供的XML文档时
(事实上,它的结构和命名很差,违反了设计XML文档的许多原则):
<DOC>
<AAA>
<STUFF>example</STUFF>
<OBJ>
<OBJVERS id="A1" CREATED="2008-02-18T13:28:08.245Z"/>
<OBJVERS id="A2" CREATED="2008-02-19T10:42:41.965Z"/>
<OBJVERS id="A13" CREATED="2009-03-16T12:43:11.703Z"/>
</OBJ>
</AAA>
<FFF/>
<GGG/>
<DDD>
<FILE />
</DDD>
</DOC>
产生人们可以猜测的结果
:
<MYOBJ>
<ELEM>
<OBJVERS id="A13" CREATED="2009-03-16T12:43:11.703Z"/>
</ELEM>
<IMAGE>
<FILE/>
</IMAGE>
</MYOBJ>