Bonjour à tous, je travaille sur une xslt que je dois modifier au minimum.
je pars d'un xml, marcxml préexistant
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)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
exemple :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Merci d'avance
Partager