Myślisz, że zarabiasz tyle, na ile zasługujesz? Zapraszamy do wzięcia udziału w anonimowej ankiecie.
0

Poniższy kawałek arkusza XSLT nie jest poprawny (nie działa i wynikiem jest komunikat: variables cannot be used within this expression)

  <xsl:param name="disclaimerType"/>
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="disclaimer" priority="-1">
  </xsl:template>

  <xsl:template match="disclaimer[@type=$disclaimerType]" priority="2">
    <div class="disclaimer">
      <h2>
        <xsl:value-of select="./header"/>
      </h2>
      <xsl:for-each select="./p">
        <p>
          <xsl:value-of select="."/>
        </p>
      </xsl:for-each>

    </div>
  </xsl:template>

Chodzi mianowicie o użycie parametru $disclaimerType wewnątrz selektora atrybutu.

Jak sparametryzować arkusz XSLT po wartości selektora atrybutu?

flag

1 Answer

1

Możesz to zamienić na coś takiego z użyciem if'a

<xsl:template match="disclaimer" priority="2">    
  <xsl:if test="@type = $disclaimerType">
    <div class="disclaimer">  
      <h2>        
        <xsl:value-of select="./header"/>      
      </h2>     
      <xsl:for-each select="./p">        
      <p>          
        <xsl:value-of select="."/>        
      </p>      
      </xsl:for-each>    
    </div>  
  </xsl:if>
</xsl:template>

Możliwe, że coś napsułem w tym if'ie (z dostępem do atrybutu) ale bardziej chodzi o sposób.

link|flag
Nic nie napsułeś, jest ok. Dzięki. :) – rafek Mar 4 at 12:27

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.