Karlovic: for-each Problem

Hallo,

ich habe folgendes XML:

<listXML>
  <Grp>
    <Title>Italien</Title>
    <Grp>
      <Title>PLZ 39022</title>
      <Grp>
      <Block>
        <Row>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
        </Row>
        <Row>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
        </Row>
      </Block>
      <Block>
      <Row>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
        </Row>
        <Row>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
        </Row>
      </Block>
      <Block>
        <Row>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
        </Row>
        <Row>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
          <Content>Col1</Cotent>
        </Row>
      </Block>
      </Grp>
    </Grp>
  </Grp>
</listXML>

Also so ein Art Groupierung.
Das zugehörige XSL schaugt folgendermaßen aus:

<xsl:for-each select="listXML/Grp">
      <fo:table padding="0">
       <fo:table-column column-width="proportional-column-width(100)"/>
       fo:table-body
        fo:table-row
         <fo:table-cell padding="0" display-align="center">
          fo:block
           fo:inline
            <xsl:value-of select="Title"/>
           </fo:inline>
          </fo:block>
         </fo:table-cell>
        </fo:table-row>
        fo:table-row
         <fo:table-cell padding="0" display-align="center">
          fo:block
           fo:inline
            <xsl:for-each select="Grp">
             <fo:table padding="0">
              <fo:table-column column-width="proportional-column-width(100)"/>
              fo:table-body
               fo:table-row
                <fo:table-cell padding="0" display-align="center">
                 fo:block
                  fo:inline
                   <xsl:value-of select="Title"/>
                  </fo:inline>
                 </fo:block>
                </fo:table-cell>
               </fo:table-row>
               fo:table-row
                <fo:table-cell padding="0" display-align="center">
                 fo:block
                  fo:inline
                   <fo:table padding="0">
                    <fo:table-column column-width="proportional-column-width(20)"/>
                    <fo:table-column column-width="proportional-column-width(20)"/>
                    <fo:table-column column-width="proportional-column-width(20)"/>
                    <fo:table-column column-width="proportional-column-width(20)"/>
                    fo:table-body
                     <xsl:for-each select="Grp/Block">
                      <!--Strich-->
                      <xsl:for-each select="Row">
                       fo:table-row
                        <xsl:for-each select="Col">
                         <fo:table-cell padding-start="0pt" padding-end="0pt" padding-before="0pt" padding-after="0pt" display-align="center">
                          fo:block
                           <fo:inline font-size="{/listXML/DataFormat/FontSizeData}pt">
                            <xsl:value-of select="Content"/>
                           </fo:inline>
                          </fo:block>
                         </fo:table-cell>
                        </xsl:for-each>
                       </fo:table-row>
                      </xsl:for-each>
                     </xsl:for-each>
                    </fo:table-body>
                   </fo:table>
                  </fo:inline>
                 </fo:block>
                </fo:table-cell>
               </fo:table-row>
              </fo:table-body>
             </fo:table>
            </xsl:for-each>
           </fo:inline>
          </fo:block>
         </fo:table-cell>
        </fo:table-row>
       </fo:table-body>
      </fo:table>
     </xsl:for-each>

Dann schicke ich das Ganze durch den fop-Parser und er rennt mir im Kreis.

  1. Hallo,

    ich habe folgendes XML:

    Leider stimmt dein XML nicht mit deinem XSL überein, auch wenn ich die (Copy & Past?) Fehler im XML korrigiere.

    Das zugehörige XSL schaugt folgendermaßen aus:
                            <xsl:for-each select="Col">

    In deinem XML gibt es kein Col-Element.
    Poste bitte ein korrektes XML- und XSL-Fragment, sonst können wir dir leider nicht helfen.

    Grüße
    Thomas