XSL FO - XSLT for-each(不显示行)

时间:2014-11-27 12:06:21

标签: xslt xsl-fo

我会尽力解释我的问题..

我有一个XSL FO,包含2页或N页,但至少有2页。

这是我的XSL FO:

(这是一个例子,导致我真正的XSL非常广泛)

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"
 xmlns:barcode="org.krysalis.barcode4j.xalan.BarcodeExt" xmlns:common="http://exslt.org/common"
                xmlns:xalan="http://xml.apache.org" exclude-result-prefixes="barcode common xalan">
<xsl:template match="Formulario">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:layout-master-set>
        <fo:simple-page-master master-name="Letter Page" page-width="8.500in" page-height="11.000in">
            <fo:region-body region-name="xsl-region-body" margin="0.700in" />
            <fo:region-before region-name="xsl-region-before" display-align="after" extent="0.700in"/>
            <fo:region-after region-name="xsl-region-after" display-align="before" extent="0.700in"/>
            <fo:region-start region-name="xsl-region-start" extent="0.700in"/>
            <fo:region-end region-name="xsl-region-end" extent="0.700in"/>
        </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="Letter Page">
        <fo:static-content flow-name="xsl-region-before">
            <fo:block>&#x00A0;</fo:block>
        </fo:static-content>
        <fo:static-content flow-name="xsl-region-after">
            <fo:block>&#x00A0;</fo:block>
        </fo:static-content>
        <fo:static-content flow-name="xsl-region-start">
            <fo:block>&#x00A0;</fo:block>
        </fo:static-content>
        <fo:static-content flow-name="xsl-region-end">
            <fo:block>&#x00A0;</fo:block>
        </fo:static-content>
        <fo:flow flow-name="xsl-region-body">
            <fo:block>PAGE 1&#x00A0;</fo:block>
            <fo:block>&#x00A0;</fo:block>
            <fo:block>&#x00A0;</fo:block>
            <fo:block>example table&#x00A0;</fo:block>
            <fo:block>&#x00A0;</fo:block>
            <fo:block><fo:table     border-collapse="collapse" width="100%" table-layout="fixed"><fo:table-column column-width="proportional-column-width(50)" column-number="1"/><fo:table-column column-width="proportional-column-width(50)" column-number="2"/><fo:table-body><fo:table-row>
                <fo:table-cell border="1pt solid black" padding="2pt">
                  <fo:block>TEST 1 </fo:block>
                </fo:table-cell><fo:table-cell border="1pt solid black" padding="2pt">
                  <fo:block>TEST2</fo:block>
                </fo:table-cell></fo:table-row>

                    <xsl:for-each select="nuevoDetalle/Atributo">
                <xsl:if test="@nroAnexo != ''">
                <fo:table-row>
                <fo:table-cell border="1pt solid black" padding="2pt">
                  <fo:block> <xsl:value-of select="@nroAnexo"/> </fo:block>
                </fo:table-cell><fo:table-cell border="1pt solid black" padding="2pt">
                  <fo:block> <xsl:value-of select="@valorPesos"/> </fo:block>
                </fo:table-cell>
                </fo:table-row>
                </xsl:if>
                </xsl:for-each></fo:table-body></fo:table></fo:block>
            <fo:block>&#x00A0;</fo:block>
            <fo:block>&#x00A0;</fo:block>
            <xsl:variable name="cicloPags" select="anexos/Formulario"/>
        <xsl:for-each select="$cicloPags">
            <fo:block break-before="page"><fo:table border-collapse="collapse" width="100%" table-layout="fixed"><fo:table-column column-width="proportional-column-width(100)" column-number="1"/><fo:table-body><fo:table-row>
                <fo:table-cell border="1pt solid black" padding="2pt">
                  <fo:block><fo:block>N PAGES</fo:block>
            <fo:block> </fo:block>
            <fo:block> </fo:block>
            <fo:block><fo:table border-collapse="collapse" width="100%" table-layout="fixed"><fo:table-column column-width="proportional-column-width(50)" column-number="1"/><fo:table-column column-width="proportional-column-width(50)" column-number="2"/><fo:table-body><fo:table-row>
                <fo:table-cell border="1pt solid black" padding="2pt">
                  <fo:block>EXAMPLE in "X" page</fo:block>
                </fo:table-cell><fo:table-cell border="1pt solid black" padding="2pt">
                  <fo:block>Example in "X" page 2</fo:block>
                </fo:table-cell></fo:table-row>
                <xsl:for-each select="nuevoDetalle/Atributo">
                <xsl:if test="@nroAnexo != ''">
                <fo:table-row>
                <fo:table-cell border="1pt solid black" padding="2pt">
                  <fo:block> <xsl:value-of select="@nroAnexo"/> </fo:block>
                </fo:table-cell><fo:table-cell border="1pt solid black" padding="2pt">
                  <fo:block> <xsl:value-of select="@valorPesos"/> </fo:block>
                </fo:table-cell></fo:table-row>
                </xsl:if>
                </xsl:for-each>
                </fo:table-body></fo:table></fo:block>&#x00A0;</fo:block>
                </fo:table-cell></fo:table-row></fo:table-body></fo:table>&#x00A0;</fo:block>
            </xsl:for-each>
        </fo:flow>
    </fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>

我读了这个XML(这是真正的XML)

<?xml version="1.0" encoding="UTF-8"?>
<Formulario>
    <Declarante apellidoMaterno="" apellidoPaterno="" domicilio="CALLE PRUEB 5555, LA FLORIDA" nombre="" rut="55555555-5"/>
    <detallesNotificacion apellidoMaternoMandatario="" apellidoPaternoMandatario="" domicilioNotificante="" emailMandatario="" emailNotificante="" nombresMandatario="" rutMandatario="3" telefonoNotificante=""/>
    <detallesInventarioB cantidadAnexo="2" impuestoDeterminadoAnexo="0" totalPesoAnexos="0"/>
    <Detalle>
        <Atributo celda="D1_C1" fila="0" valor="2055503"/>
        <Atributo celda="D1_C2" fila="0" valor="Depositos"/>
        <Atributo celda="D1_C3" fila="0" valor="0.0"/>
        <Atributo celda="D1_C1" fila="1" valor="2055506"/>
        <Atributo celda="D1_C2" fila="1" valor="Otros Bienes Corporales Muebles Nominativos"/><Atributo celda="D1_C3" fila="1" valor="0.0"/>
        <Atributo celda="D2_C1" fila="0" valor="1"/><Atributo celda="D2_C2" fila="0" valor="1"/><Atributo celda="D2_C3" fila="0" valor="1"/>
        <Atributo celda="D2_C4" fila="0" valor="1"/><Atributo celda="D2_C5" fila="0" valor="1"/><Atributo celda="D2_C6" fila="0" valor="1"/>
        <Atributo celda="D2_C7" fila="0" valor="1"/><Atributo celda="D2_C1" fila="1" valor="2"/><Atributo celda="D2_C2" fila="1" valor="2"/>
        <Atributo celda="D2_C3" fila="1" valor="2"/><Atributo celda="D2_C4" fila="1" valor="2"/><Atributo celda="D2_C5" fila="1" valor="2"/>
        <Atributo celda="D2_C6" fila="1" valor="2"/><Atributo celda="D2_C7" fila="1" valor="2"/><Atributo celda="D3_C1" fila="0" valor="3"/>
        <Atributo celda="D3_C2" fila="0" valor="3"/><Atributo celda="D3_C3" fila="0" valor="3"/><Atributo celda="D3_C4" fila="0" valor="3"/>
        <Atributo celda="D3_C1" fila="1" valor="4"/><Atributo celda="D3_C2" fila="1" valor="4"/><Atributo celda="D3_C3" fila="1" valor="4"/>
        <Atributo celda="D3_C4" fila="1" valor="4"/>
    </Detalle>
    <anexos>
        <Formulario>
            <Declarante apellidoMaterno="" apellidoPaterno="" domicilio="CALLE PRUEB 5555, LA FLORIDA" dvDecla="5" nombre="" rutDecla="55555555"/>
            <detalleInventarioUno cantidadAcciones="" codigoBienDivisa="11" codigoDescripcion="" codigoPaisUbicaBien="" mecanismoInversion=""/>
            <detalleInventarioB codigoBienDivisa0="" codigoOperacion="" codigoOrigenRenta="" fechaAdquisicion="" fechaOperacion=""/>
            <detalleInventarioB1 codigoBienDivisa1="11" codigoMoneda="" normaValorizacion="" valorComercialEnPesos="" valorComercialMonedaOrigen=""/>
            <detalleInventarioC codigoBienDivisaC="11" fechaRegistro="" institucionOtorgoRegistro="" numeroRegistro="" paisRegistro=""/>
            <detalleInventarioD codigoBienDivisaD="11" dDv="" dNumeroCuenta="" dPaisResidencia="" dRazonSocial="" dRut="" dTaxId="" dTipoDepositoDinero=""/>
            <detalleInventarioE codigoBienDivisaE="11" etrust=""/>
            <detalleInventarioE1 codigoBienDivisaE1="11" e1CodigoPaisResidencia="" e1Dv="" e1Nombres="" e1Rut="" e1TaxId=""/>
            <detalleInventarioE2 codigoBienDivisaE2="11" e2CodigoPaisResidencia="" e2Dv="" e2Nombres="" e2Rut="" e2TaxId=""/>
            <detallePropiedadIndirectaF codigoBienDivisaF="11" codigoSino=""/>
            <DetalleAnexo>
                <Atributo celda="D1_C1" fila="0" valor="RR"/>
                <Atributo celda="D1_C2" fila="0" valor="1"/><Atributo celda="D1_C3" fila="0" valor="1"/><Atributo celda="D1_C4" fila="0" valor="1"/>
                <Atributo celda="D1_C5" fila="0" valor=""/><Atributo celda="D1_C1" fila="1" valor="RFFFF"/><Atributo celda="D1_C2" fila="1" valor="21"/>
                <Atributo celda="D1_C3" fila="1" valor="2"/><Atributo celda="D1_C4" fila="1" valor="SDASD"/><Atributo celda="D1_C5" fila="1" valor="&#13;&#10;AN"/>
                <Atributo celda="D2_C1" fila="0" valor="ASD"/><Atributo celda="D2_C2" fila="0" valor="1"/><Atributo celda="D2_C3" fila="0" valor="1"/>
                <Atributo celda="D2_C4" fila="0" valor="3"/><Atributo celda="D2_C5" fila="0" valor=""/><Atributo celda="D2_C1" fila="1" valor="ASD232"/>
                <Atributo celda="D2_C2" fila="1" valor="66"/><Atributo celda="D2_C3" fila="1" valor="4"/><Atributo celda="D2_C4" fila="1" valor="3"/>
                <Atributo celda="D2_C5" fila="1" valor="&#13;&#10;AN"/><Atributo celda="D3_C1" fila="0" valor="SSSSSSSSSSSSS"/>
                <Atributo celda="D3_C1" fila="1" valor="DDDDDDDDDDDDDDDD"/><Atributo celda="D4_C1" fila="0" valor="77"/>
                <Atributo celda="D4_C2" fila="0" valor="7SDASDASD"/><Atributo celda="D4_C3" fila="0" valor="2"/>
                <Atributo celda="D4_C4" fila="0" valor="2"/><Atributo celda="D4_C5" fila="0" valor="2"/>
                <Atributo celda="D4_C1" fila="1" valor="2"/><Atributo celda="D4_C2" fila="1" valor="SSSSSSSSSSSSCCCCX"/>
                <Atributo celda="D4_C3" fila="1" valor="ASD"/><Atributo celda="D4_C4" fila="1" valor="SDF"/>
                <Atributo celda="D4_C5" fila="1" valor="SDF"/>
            </DetalleAnexo>
        </Formulario>
        <Formulario>
            <Declarante apellidoMaterno="" apellidoPaterno="" domicilio="CALLE PRUEB 5555, LA FLORIDA" dvDecla="5" nombre="" rutDecla="55555555"/>
            <detalleInventarioUno cantidadAcciones="" codigoBienDivisa="2" codigoDescripcion="" codigoPaisUbicaBien="" mecanismoInversion=""/>
            <detalleInventarioB codigoBienDivisa0="" codigoOperacion="" codigoOrigenRenta="" fechaAdquisicion="" fechaOperacion=""/>
            <detalleInventarioB1 codigoBienDivisa1="2" codigoMoneda="" normaValorizacion="" valorComercialEnPesos="" valorComercialMonedaOrigen=""/>
            <detalleInventarioC codigoBienDivisaC="2" fechaRegistro="" institucionOtorgoRegistro="" numeroRegistro="" paisRegistro=""/>
            <detalleInventarioD codigoBienDivisaD="2" dDv="" dNumeroCuenta="" dPaisResidencia="" dRazonSocial="" dRut="" dTaxId="" dTipoDepositoDinero=""/>
            <detalleInventarioE codigoBienDivisaE="2" etrust=""/>
            <detalleInventarioE1 codigoBienDivisaE1="2" e1CodigoPaisResidencia="" e1Dv="" e1Nombres="" e1Rut="" e1TaxId=""/>
            <detalleInventarioE2 codigoBienDivisaE2="2" e2CodigoPaisResidencia="" e2Dv="" e2Nombres="" e2Rut="" e2TaxId=""/>
            <detallePropiedadIndirectaF codigoBienDivisaF="2" codigoSino=""/>
            <DetalleAnexo/>
        </Formulario>
    </anexos>
    <nuevoDetalle>
        <Atributo nomBien="Depositos" nroAnexo="0" valorPesos="0.0"/>
        <Atributo nomBien="Otros Bienes Corporales Muebles Nominativos" nroAnexo="1" valorPesos="0.0"/>
        <Atributo ape_mSecC="1" ape_pSecC="1" nombresSecC="1" paisSecC="1" participacionSecC="1" rutSecC="1" taxSecC="1"/>
        <Atributo ape_mSecC="2" ape_pSecC="2" nombresSecC="2" paisSecC="2" participacionSecC="2" rutSecC="2" taxSecC="2"/>
        <Atributo fecProbIngresoSecD="3" montoProbIngresoSecD="3" numCuentaSecD="3" razonSocialSecD="3"/>
        <Atributo fecProbIngresoSecD="4" montoProbIngresoSecD="4" numCuentaSecD="4" razonSocialSecD="4"/>
        <Atributo nomCompletoSecD="RR" paisAnSecD="1" rutAnSecD="1" taxIdAnSecD="1"/>
        <Atributo nomCompletoSecD="RFFFF" paisAnSecD="" rutAnSecD="21" taxIdAnSecD="2"/>
        <Atributo secFNomCompleto="ASD" secFPaisSecD="SDASD" secFRut="1" secFTaxId=""/>
        <Atributo secFNomCompleto="ASD232" secFPaisSecD="3" secFRut="" secFTaxId="1"/>
        <Atributo secFNomCompleto="" secFPaisSecD="3" secFRut="66" secFTaxId="4"/>
        <Atributo secGDetalle="SSSSSSSSSSSSS"/><Atributo secGDetalle="DDDDDDDDDDDDDDDD"/>
        <Atributo secHAutenticado="2" secHCant="77" secHDescrip="7SDASDASD" secHLegalizado="2" secHObservaciones="" secHRecibido="2" secHTraducido=""/>
        <Atributo secHAutenticado="" secHCant="2" secHDescrip="SSSSSSSSSSSSCCCCX" secHLegalizado="ASD" secHObservaciones="" secHRecibido="" secHTraducido=""/>
    </nuevoDetalle>
</Formulario>

所以,在我的XSL FO中的两个表中,我显示了相同的元素和属性,但是在第二个页面中它是for-each所以我认为可能存在问题,这就是为什么不显示行给我..

感谢您提前,并抱歉我的英语不好。

0 个答案:

没有答案