xsl-list
[Top] [All Lists]

[xsl] Full output all nodes depending on a conditional

2010-11-14 10:35:54
Hi All,

I have to insert a node in a picking document depending on a condition of an 
earlier document.

But when I get the output does not go all the documents, only the document that 
it performed the condition (picking).

Working with xsl 1.0

What should I do?

XML File:

<?xml version="1.0" encoding="iso-8859-1"?>
 <spoolpd>
   <pd>
     <detfac>
        <blqcab>
           <numpedido>1006314098</numpedido>
           <lugar>BOGOTA</lugar>
        </blqcab>   
        <pie>
           <linea1>693.85</linea1>
           <linea2>57.92</linea2>
           <linea3>635.93</linea3>
           <linea4>15.00</linea4>
        </pie>
     </detfac>
     <picking>
        <pagina>
           <cabecera>
             <esttrabalta>09-01-05-07</esttrabalta>
             <esttrabmedbaja></esttrabmedbaja>
           </cabecera> 
        </pagina>
        <pagina>
           <cabecera>
             <esttrabalta>09-01-05-07</esttrabalta>
             <esttrabmedbaja></esttrabmedbaja>
           </cabecera> 
        </pagina>
     </picking>
  </pd>
  <pd>
       <detfac>
          <blqcab>
             <numpedido>1006314098</numpedido>
             <lugar>BOGOTA</lugar>
          </blqcab>   
          <pie>
             <linea1>10.85</linea1>
             <linea2>20.92</linea2>
             <linea3>30.93</linea3>
             <linea4>15.00</linea4>
          </pie>
       </detfac>
       <picking>
          <pagina>
             <cabecera>
               <esttrabalta>09-01-05-07</esttrabalta>
               <esttrabmedbaja></esttrabmedbaja>
             </cabecera> 
          </pagina>
          <pagina>
           <cabecera>
             <esttrabalta>09-01-05-07</esttrabalta>
             <esttrabmedbaja></esttrabmedbaja>
           </cabecera> 
          </pagina>
       </picking>
  </pd>
 </spoolpd>


My XSL 1.0 File:

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
<xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes" 
cdata-section-elements="descrip"/> 
<xsl:strip-space elements="*"/>
 
  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>
      
  <xsl:template match="spoolpd">
    <xsl:copy>
      <xsl:apply-templates select="@* | pd[(_at_)marca = 'lbel'] | pd"/>    
</xsl:copy>
  </xsl:template>
      
  <xsl:template match="pd">
    <xsl:copy>      
      <xsl:variable name="id" select="translate(detfac/pie/linea3,',','')"/>
     <xsl:if test="$id &gt; '500'">
        <xsl:apply-templates select="@* | picking"/>
      </xsl:if>  
    </xsl:copy>
  </xsl:template>
      
  <xsl:template match="cabecera">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
      <advertencia>marca</advertencia>
    </xsl:copy>
  </xsl:template> 
  
</xsl:stylesheet>


Desired output:

<?xml version="1.0" encoding="iso-8859-1"?>
 <spoolpd>
   <pd>
     <detfac>
        <blqcab>
           <numpedido>1006314098</numpedido>
           <lugar>BOGOTA</lugar>
        </blqcab>   
        <pie>
           <linea1>693.85</linea1>
           <linea2>57.92</linea2>
           <linea3>635.93</linea3>
           <linea4>15.00</linea4>
        </pie>
     </detfac>
     <picking>
        <pagina>
           <cabecera>
             <esttrabalta>09-01-05-07</esttrabalta>
             <esttrabmedbaja></esttrabmedbaja>
             <advertencia>marca</advertencia>
           </cabecera> 
        </pagina>
        <pagina>
           <cabecera>
             <esttrabalta>09-01-05-07</esttrabalta>
             <esttrabmedbaja></esttrabmedbaja>
           <advertencia>marca</advertencia>
           </cabecera> 
        </pagina>
     </picking>
  </pd>
  <pd>
       <detfac>
          <blqcab>
             <numpedido>1006314098</numpedido>
             <lugar>BOGOTA</lugar>
          </blqcab>   
          <pie>
             <linea1>10.85</linea1>
             <linea2>20.92</linea2>
             <linea3>30.93</linea3>
             <linea4>15.00</linea4>
          </pie>
       </detfac>
       <picking>
          <pagina>
             <cabecera>
               <esttrabalta>09-01-05-07</esttrabalta>
               <esttrabmedbaja></esttrabmedbaja>
               <advertencia>marca</advertencia>
             </cabecera> 
          </pagina>
          <pagina>
           <cabecera>
             <esttrabalta>09-01-05-07</esttrabalta>
             <esttrabmedbaja></esttrabmedbaja>
           <advertencia>marca</advertencia>
           </cabecera> 
          </pagina>
       </picking>
  </pd>
 </spoolpd>


Current Output: ====> DETFAC DOCUMENT MISSING

<?xml version="1.0" encoding="iso-8859-1"?>
 <spoolpd>
   <pd>
     <picking>
        <pagina>
           <cabecera>
             <esttrabalta>09-01-05-07</esttrabalta>
             <esttrabmedbaja></esttrabmedbaja>
             <advertencia>marca</advertencia>
           </cabecera> 
        </pagina>
        <pagina>
           <cabecera>
             <esttrabalta>09-01-05-07</esttrabalta>
             <esttrabmedbaja></esttrabmedbaja>
           <advertencia>marca</advertencia>
           </cabecera> 
        </pagina>
     </picking>
  </pd>
  <pd>
       <picking>
          <pagina>
             <cabecera>
               <esttrabalta>09-01-05-07</esttrabalta>
               <esttrabmedbaja></esttrabmedbaja>
               <advertencia>marca</advertencia>
             </cabecera> 
          </pagina>
          <pagina>
           <cabecera>
             <esttrabalta>09-01-05-07</esttrabalta>
             <esttrabmedbaja></esttrabmedbaja>
           <advertencia>marca</advertencia>
           </cabecera> 
          </pagina>
       </picking>
  </pd>
 </spoolpd>


thanks for the help.

Luis Fdo. 

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>