xsl tutorial transformar transformación programacion partir manejo lenguajes freeformater crear convertir html xml xslt

html - tutorial - ¿Cómo puedo seleccionar el primer elemento usando XSLT?



transformar xml a xslt (4)

Tengo una lista de noticias, ordenadas por fechaCreated. Tengo un control de cuadro de vista previa donde solo quiero mostrar el primer elemento. ¿Cómo puedo hacer eso usando 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>


Si desea generar XHTML 1.1, aquí hay una forma:

<?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>


Tenía la misma pregunta y creo que encontré una mejor respuesta:

<xsl:for-each select="newsItem[1]"> <div><xsl:value-of select="dateCreated"/></div> <div><xsl:value-of select="summary"/></div> </xsl:for-each>


//newsItem[1]

Selecciona el primer elemento newsItem libro, pero tenga en cuenta que IE5 y posteriores han implementado que [0] debería ser el primer nodo, pero de acuerdo con el estándar W3C debería ser [1] .


//newsItem[1]

debería hacer