XSL - arrays

 
Vista:

arrays

Publicado por Rodrigo (4 intervenciones) el 20/07/2005 16:00:55
Hola tengo un arxivo xml con la siguiente forma:
-
<xml>
<registro Agrupacion="" Artdescr="Descr1" Articulo="M001" Calidad="Cl1" Cantidad="6" Cantidades="1|2|1|1|1" Coleccion="s" Color="1" ColorDescr="Rojo" Conjunto="" FechaEntrega="12-01-2001" Importe="18" Linea="1" Modelo="M1" Pedido="555555" Precios="12,21|12,21|12,21|12,12|12,12|" Tarifa="T1"/></xml>

y quiero recorrer el atributo cantidades para que vaya sacando por pantalla sucesivamnt cada una de las cantidades separadas por barras. ¿Cómo lo puedo hacer?
Gracias
Es urgente
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Recorrer y mostrar cantidades separadas de un atributo en XML

Publicado por Alejandro (227 intervenciones) el 05/07/2023 00:52:38
Puedes utilizar XSLT para recorrer el atributo "Cantidades" y mostrar cada una de las cantidades separadas por barras. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <xsl:for-each select="xml/registro">
      <xsl:call-template name="split-cantidades">
        <xsl:with-param name="cantidades" select="@Cantidades" />
      </xsl:call-template>
    </xsl:for-each>
  </xsl:template>
 
  <xsl:template name="split-cantidades">
    <xsl:param name="cantidades" />
 
    <xsl:variable name="tokens" select="tokenize($cantidades, '|')" />
 
    <xsl:for-each select="$tokens">
      <xsl:value-of select="." />
      <xsl:text> </xsl:text> <!-- Espacio para separar las cantidades -->
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

Este código XSLT recorre el atributo "Cantidades" utilizando la función `tokenize()` para separar las cantidades por la barra "|". Luego, utiliza un bucle `xsl:for-each` para mostrar cada una de las cantidades separadas, seguidas de un espacio para separarlas visualmente.

Recuerda ajustar el camino de selección `xml/registro` en el código XSLT según la estructura de tu archivo XML. También puedes personalizar el formato de salida según tus necesidades.

Espero que esto te ayude. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar