Announcement

Collapse
No announcement yet.

Problem mit with-param und for-each

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit with-param und for-each

    Hallo,

    ich habe in einem anderen Unterforum schon einmal gefragt. Aus diesem Grund frage ich hier noch einmal und ergänze es um ein Beispiel.

    Ich versuche gerade mit einem param, with-param und einer for-each schleife eine ausgabe hin zubekommen. allerdings wird nie ein Wert in den parametern gesetzt.

    Ich will also in einer verschachtelten Schleife den Parameter setzen und danach auswerten. Allerdings wird der Wert der Parameter first und last nie gesetzt.

    die if statements hingegen funktionieren soweit alle, da bekomme ich jedes mal eine Ausgabe, wenn ich z.B. einen weiteren Knoten für die Ausgabe einbaue.

    Was ich machen will ist folgendes:

    Ich will die XML Datei in eine andere Darstellung transformieren. Da aber hier im Tag "page-sequence-master" es das Attribut "first" gibt, will ich
    nur im ersten "page-sequence" Tag die Werte vom "simple-page-master" Tag übernehmen.
    In den anderen "page-sequence" Tag's, dann den Rest.
    Aus diesem Grund muss ich (denke ich zumindest) erst einmal herausfinden, ob ich beim ersten "page-sequence" Tag bin und
    noch das Attribut master-name="masterNamePageFirst1" im "simple-page-master" Tag gefunden habe.

    Allerdings werden bei mir die Parameter first und last nicht gespeichert, obwohl die Knoten richtig durchluafen werden.

    HTML Code:
    <xsl:template name="ttt" match="fo:root">
        <xsl:param name="first" />
        <xsl:param name="last" />
    
        <template>
          
          <xsl:for-each select="fo:page-sequence">
                    
            <xsl:for-each select="../fo:layout-master-set/fo:page-sequence-master/fo:repeatable-page-master-alternatives/fo:conditional-page-master-reference">
    
              <xsl:if test="./@page-position='first'">
                <xsl:call-template name="ttt">
                  <xsl:with-param name="first" select="as" />
                </xsl:apply-templates>
              </xsl:if>
                
              <xsl:if test="./@page-position='last'">
                <xsl:apply-templates name="ttt">
                  <xsl:with-param name="last" select="./@master-reference" />
                </xsl:apply-templates>
              </xsl:if>
            </xsl:for-each>    
    
            <xsl:variable name="page-sequence-index" select="position() - 1"/>
            <xsl:value-of select="$first" /><br />
            <xsl:value-of select="$last" />
            <xsl:if test="$page-sequence-index=0 and $first != ''">
              <page>
                <xsl:value-of select="../fo:layout-master-set/fo:simple-page-master/@page-height" />
              </page>
            </xsl:if>
          
          </xsl:for-each>
        
        </template>
    
      </xsl:template>
    Hier ist mein XML File:

    HTML Code:
      <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <fo:layout-master-set>
       <fo:simple-page-master master-name="masterNamePageMain0" page-height="845.0pt" page-width="598.0pt">
        <fo:region-body overflow="hidden" /> 
        <fo:region-before extent="210.0pt" precedence="true" /> 
        <fo:region-after extent="44.0pt" precedence="true" /> 
        <fo:region-start extent="28.0pt" precedence="false" /> 
        <fo:region-end extent="12.0pt" precedence="false" /> 
       </fo:simple-page-master>
       <fo:simple-page-master master-name="masterNamePageFirst1" page-height="845.0pt" page-width="598.0pt">
        <fo:region-body overflow="hidden" /> 
        <fo:region-before region-name="regionBefore1" extent="209.0pt" precedence="true" /> 
        <fo:region-after region-name="regionAfter1" extent="44.0pt" precedence="true" /> 
        <fo:region-start region-name="regionStart1" extent="28.0pt" precedence="false" /> 
        <fo:region-end region-name="regionEnd1" extent="12.0pt" precedence="false" /> 
       </fo:simple-page-master>
       <fo:simple-page-master master-name="masterNamePageRest2" page-height="845.0pt" page-width="598.0pt">
        <fo:region-body overflow="hidden" /> 
        <fo:region-before region-name="regionBefore2" extent="117.0pt" precedence="true" /> 
        <fo:region-after region-name="regionAfter2" extent="45.0pt" precedence="true" /> 
        <fo:region-start region-name="regionStart2" extent="28.0pt" precedence="false" /> 
        <fo:region-end region-name="regionEnd2" extent="12.0pt" precedence="false" /> 
       </fo:simple-page-master>
       <fo:page-sequence-master master-name="masterSequenceName1">
        <fo:repeatable-page-master-alternatives>
         <fo:conditional-page-master-reference master-reference="masterNamePageFirst1" page-position="first" /> 
         <fo:conditional-page-master-reference master-reference="masterNamePageRest2" page-position="rest" /> 
        </fo:repeatable-page-master-alternatives>
       </fo:page-sequence-master>
      </fo:layout-master-set>
      <fo:page-sequence master-reference="masterSequenceName1" initial-page-number="1" force-page-count="auto">
      </fo:page-sequence>
      <fo:page-sequence master-reference="masterSequenceName1" initial-page-number="1" force-page-count="auto">
      </fo:page-sequence>
    	<fo:page-sequence master-reference="masterSequenceName1" initial-page-number="1" force-page-count="auto">
      </fo:page-sequence>
    	<fo:page-sequence master-reference="masterSequenceName1" initial-page-number="1" force-page-count="auto"> 
      </fo:page-sequence>
      </fo:root>
Working...
X