XSL - Anidar un for-each dentro de otro

 
Vista:

Anidar un for-each dentro de otro

Publicado por Nicolas (1 intervención) el 25/04/2018 14:55:15
Estimados

Junto con saludarlos, deseo poder mostrar por medio de un XSLT mi XML, el cual tiene nodos repetitivos y dentro de ese nodo hay otro nodo repetitivo, lo cual no he podido resolverlo a desconocimiento del lenguaje XSL. Tanto Equipo como MantencionPreventivaPerdiodo son nodos repetibles, dentro de mi XSLT pude repetir Equipo pero no MantencionPreventivaPerioro, no se si es posible realizar tal funcionamiento

File: Data.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0"?>
<Producto>
	<Equipo Id="0">
       	  <EquipoMarca Id="0">Epson</EquipoMarca>
          <EquipoModelo Id="0">i940</EquipoModelo>
          <EquipoSerie Id="0">789456123</EquipoSerie>
          <EquipoMantencionPreventiva Id="0">
            <MantencionPreventivaTope Id="0">4</MantencionPreventivaTope>
            <MantencionPreventivaPeriodo Id="0">
              <Fecha Id="0">2018/05</Fecha>
            </MantencionPreventivaPeriodo>
            <MantencionPreventivaPeriodo Id="0">
              <Fecha Id="0">2018/06</Fecha>
            </MantencionPreventivaPeriodo>
            <MantencionPreventivaPeriodo Id="0">
              <Fecha Id="0">2018/07</Fecha>
            </MantencionPreventivaPeriodo>
            <MantencionPreventivaPeriodo Id="0">
              <Fecha Id="0">2018/08</Fecha>
            </MantencionPreventivaPeriodo>
          </EquipoMantencionPreventiva>
    </Equipo>
</Producto>

File: Transform.xslt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<html xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:version="1.0">
  <head>
    <title>Lista de productos</title>
  </head>
  <body>
    <table>
      <tr>
        <th>Marca equipo</th>
        <th>Modelo equipo</th>
        <th>Serie equipo</th>
        <th>Tope mantencion preventiva</th>
        <th>Periodo</th>
      </tr>
      <xsl:for-each select="Producto/Equipo">
        <tr>
          <td><xsl:value-of select="EquipoMarca"/></td>
          <td><xsl:value-of select="EquipoModelo"/></td>
          <td><xsl:value-of select="EquipoSerie"/></td>
          <td><xsl:value-of select="EquipoMantencionPreventiva/MantencionPreventivaTope"/></td>
          <td><xsl:value-of select="EquipoMantencionPreventiva/MantencionPreventivaTope/Fecha"/></td>
        </tr>
      </xsl:for-each>
    </table>
  </body>
</html>
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