feed twitter facebook LinkedIn facebook

XSLT » Número de elementos de un fichero XML

Diciembre 30, 2009 por Víctor Cuervo . 5822 visitas Sin Comentarios Imprimir Imprimir

Si estás tratando un fichero XML es muy probable que necesites conocer el número de elementos que lo componen, de cara a poderlo manipular de una forma más sencilla. Sobre todo si están iterando en un bucle por el número de elementos de un determinado nodo.

Saber el número de elementos de un fichero XML dado un nodo en concreto es una tarea muy sencilla.

Imaginemos el siguiente XML (¡qué poco original que soy!):

<?xml version="1.0" encoding="iso-8859-1"?>
<libros>
<libro>
    <titulo>Fuente Ovejuna</titulo>
    <autor>Lope de Vega</autor>
    <isbn>84-9815-002-7</isbn>
  </libro>
<libro>
    <titulo>La Celestina</titulo>
    <autor>Fernando de Rojas</autor>
    <isbn>84-96390-96-9</isbn>
  </libro>
  ...
</libros>

Lo primero que haremos en nuestro fichero XSLT será el saber que parte de la estructura del documento XML nos interesa contar. Es decir, en un nodo en concreto, para saber el número de elementos que dicha estructura tiene. En este ejemplo, la idea es contar el número de libros que hay en el documento XML.

Para contar el número de elementos disponemos de una función. Esta es la función count():

count(xpath)

El parámetro de la función será una expresión xpath que haga relación a alguna estructura del documento XML que estamos tratando. En nuestro caso la expresión xpath será:

/libros/libro

Para poder mostrar por pantalla el número de elementos deberemos de utilizar la etiqueta xsl:value-of, la cual, en su parámetro select llevará la función count():

<xsl:value-of select="count(/libros/libro)"/>
Visualizar el Codigo
Visualiza el artículo
Descargar el Codigo
Descargar el código
Error en el Codigo
Error en el código
Foro sobre XSLT
Foro sobre XSLT
tags: , , , , ,

Artículos relacionados:

No Comments yet »

Redifusión RSS de los comentarios de la entrada. TrackBack URI

Deje un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*