xslt sélectionner une seule valeur à partir de @ind1
Bonjour à tous, je travaille sur une xslt que je dois modifier au minimum.
je pars d'un xml, marcxml préexistant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <datafield tag="210" ind1=" " ind2=" ">
<subfield code="a">Paris</subfield>
<subfield code="c">La Documentation française</subfield>
<subfield code="d">1962-</subfield>
</datafield>
<datafield tag="210" ind1="0" ind2=" ">
<subfield code="a">Paris</subfield>
<subfield code="c">La Documentation française</subfield>
<subfield code="d">1962-2004</subfield>
</datafield>
<datafield tag="210" ind1="1" ind2=" ">
<subfield code="a">Louvain-la-Neuve</subfield>
<subfield code="c">De Boeck Université</subfield>
<subfield code="d">2005-</subfield> |
j'ai pour objectif d'afficher le datafied tag='210' le plus récent dans un ordre précis, je m’appuie sur l'indicateur @ind1 qui est correlé à la date (voir ci-dessus)
exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <xsl:for-each select="marc:datafield[@tag=210][@ind1=1]">
<xsl:if test="marc:subfield[@code='a'] or marc:subfield[@code='c'] or marc:subfield[@code='d']">
<dd>
<xsl:for-each select="marc:subfield[@code='a']">
<xsl:value-of select="." />
<xsl:if test="position() < last()"><xsl:text>, </xsl:text></xsl:if>
<xsl:if test="position()=last()">
<xsl:if test="../marc:subfield[@code='c'] or ../marc:subfield[@code='d']">
<xsl:text> : </xsl:text>
</xsl:if>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="marc:subfield[@code='c']">
<xsl:value-of select="." />
<xsl:if test="position() < last()"><xsl:text>, </xsl:text></xsl:if>
<xsl:if test="position()=last()">
<xsl:if test="../marc:subfield[@code='d']">
<xsl:text> : </xsl:text>
</xsl:if>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="marc:subfield[@code='d']">
<xsl:value-of select="." />
<xsl:if test="position() < last()"><xsl:text>, </xsl:text></xsl:if>
</xsl:for-each>
</dd>
<div style="clear:both"></div>
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</dl>
</xsl:if> |
je n'arrive pas à mettre une condition de telle sorte que je sélectionne marc:datafield[@tag=210][@ind1=] soit le plus grand possible, ou si @ind seul et afficher mais je bloque sur cette conditionnelle.
Merci d'avance