none
XSL: Un For-each dentro de otro for-each RRS feed

  • Pregunta

  • Estimados

    Junto con saludar y agradecer al foro en general, no se si mi pregunta a realizar se encuentra dentro de los parametos de este foro. Mi consulta es la siguiente: como puedo realizar un for-each dentro de otro for-each en XSL para obtener los datos de los nodos repetitivos que se encuentran en el XML. Tanto el nodo Equipo como MantencionPreventivaPeriodo pueden repetirse n veces, y mi problema sugue en el

    Codigo XML

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

    Codigo XSL

    <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:for-each select="Producto/Equipo/EquipoMantencionPreventiva/MantencionPreventivaPeriodo">
              	<xsl:value-of select="Fecha"/>
              	</xsl:for-each>
              </td>
            </tr>
        </table>
      </body>
    </html>

    El problema se genera en mi segundo for-each, el cual queda en vacio o repitiendo el mismo dato, estoy aprendiendo sobre XML y XSL pero si es posible obtener ayuda se los agradeceria


    miércoles, 25 de abril de 2018 15:05