Inicio > XML XSLT > Función XSLT string-join. Concatenar en XSL

Función XSLT string-join. Concatenar en XSL

Muchos de nosotros conocemos los archivos XML. Sabemos que nos permiten organizar datos y darles una especie de jerarquía. Generalmente los web service nos dan respuesta en este formato. Pero, qué más podemos hacer con él?

He tenido la oportunidad de trabajar con las XSL que son las hojas de estilo de XML. En pocas palabras, uno define una serie de reglas de cómo leer el flujo XML y el XSL se encarga de transformarlo en otro formato, por ejemplo en un archivo txt plano, o en html.

Volveré luego con una explicación más detalladas y más ejemplos, pero por hoy, mi “pense-bête” está destinado a utilizar una función de XSLT para dar formato a un conjunto de valores dentro de tags del mismo nombre.

Supongamos que tenemos :

<libro>
____<titulo>Le Cuisiner de Gengis Khan</titulo>
____<autores>
________<autor>Paul Wagner</autor>
________<autor>Pierre Antilogus</autor>
________<autor>Doan</autor>
____</autores>
____<editor>Le Castor Astral</editor>
</libro>

Y necesito mostrar los autores, contatenados con una “,”. Tenemos entonces que parsear el tag <autores>

Entonces:

<xsl:template match="libro/autores">
____<xsl:value-of select="string-join(./autor, ',')"/>
</xsl:template>

Este código recorre el árbol de XML, y cuando encuentre autores, aplicará la funcion string-join a todos los tags que se llamen autor, y los concatenará con una coma.

Et voilà!

  1. Eddy
    18 octubre, 2012 a las 23:41

    y el resultado? no lo muestras?

    • 21 octubre, 2012 a las 22:04

      Se trata de una simple concatenación. El resultado es entonces Paul Wagner, Pierre Antilogus, Doan.

  2. Luis3007
    13 enero, 2015 a las 21:54

    Qué pasa si también quiero concatenar el editor y otros parametros fuera de autor?

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Hype Driven Development

coz' geeks love new stuff !

My experiments with SCRUM

Site to discuss Agile (Scrum, XP, etc) concepts and ideas.

CommitStrip

Mi propia cheatsheet...

Chris Aniszczyk's (zx) diatribe

work. life. open source. diatribes.

GermanTrevi

repositorio de mi mente...

A %d blogueros les gusta esto: