Comment puis-je sélectionner le premier élément en utilisant XSLT?
J'ai une liste de nouvelles, triées par dateCreated. J'ai un contrôle de boîte de prévisualisation où je veux seulement montrer le premier élément. Comment puis-je faire cela en utilisant XSLT?
<xml>
<news>
<newsitem>
<dateCreated>2009-09-09</dateCreated>
<summary>Something great happened</sumamry>
</newsitem>
<newsitem>
<dateCreated>2009-09-08</dateCreated>
<summary>Something bad happened</sumamry>
</newsitem>
<newsitem>
<dateCreated>2009-09-07</dateCreated>
<summary>Something really bad happened</sumamry>
</newsitem>
</news>
</xml>
28
demandé sur
John Bubriski
2009-09-30 19:20:33
4 réponses
Si vous souhaitez afficher XHTML 1.1, voici une façon:
<?xml version="1.0"?>
<xsl:transform version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xsl xs">
<xsl:output mode="xhtml" version="1.1" omit-xml-declaration="yes"
encoding="utf-8" media-type="application/xhtml+xml" indent="no"
doctype-public="-//W3C//DTD XHTML 1.1//EN"
doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" />
<xsl:template match="//newsItem[1]">
<div><xsl:value-of select="dateCreated"/></div>
<div><xsl:value-of select="summary"/></div>
</xsl:template>
</xsl:transform>
47
répondu
brianary
2009-09-30 15:24:48
J'ai eu la même question et je pense avoir trouvé une meilleure réponse:
<xsl:for-each select="newsItem[1]">
<div><xsl:value-of select="dateCreated"/></div>
<div><xsl:value-of select="summary"/></div>
</xsl:for-each>
6
répondu
mmoossen
2011-05-25 10:01:28
//newsItem[1]
Sélectionne le premier élément book newsItem
, mais notez que IE5 et plus tard a implémenté que [0]
devrait être le premier nœud, mais selon la norme W3C, il devrait être [1]
!
1
répondu
user2113770
2013-06-20 02:54:10