SORU
18 Aralık 2010, CUMARTESİ


'çağrı şablon arasındaki farkı' ve '-şablonları uygulamak' xsl nedir?

Küçük iki etiketleri, hakkında biraz kafam karıştı XSLT yeni duyuyorum

<xsl:apply-templates name="nodes">

ve

<xsl:call-template select="nodes"> 

Yani aralarındaki fark listesi yapabilir misin?

CEVAP
18 Aralık 2010, CUMARTESİ


<xsl:call-template> yakın geleneksel bir programlama dilinde fonksiyon çağırma eşdeğerdir.

Bir dize verir, bu basit gibi XSLT işlevleri tanımlayabilirsiniz.

<xsl:template name="dosomething">
  <xsl:text>A function that does something</xsl:text>
</xsl:template>

Bu fonksiyon <xsl:call-template name="dosomething">) çağrılabilir.

<xsl:apply-templates> XSLT gerçek gücü bu biraz farklı, ve: XML düğümleri herhangi bir sayı select tanımlama öznitelik (ne olursa olsun), onları dolaşır alır (bu çok önemli: geçerli şablon gibi bir döngü çalışıyor!ve onlar için eşleşen şablonları bulur:

<!-- sample XML snippet -->
<xml>
  <foo /><bar /><baz />
</xml>

<!-- sample XSLT snippet -->
<xsl:template match="xml">
  <xsl:apply-templates select="*" /> <!-- three nodes selected here -->
</xsl:template>

<xsl:template match="foo"> <!-- will be called once -->
  <xsl:text>foo element encountered</xsl:text>
</xsl:template>

<xsl:template match="*"> <!-- will be called twice -->
  <xsl:text>other element countered</xsl:text>
</xsl:template>

Bu şekilde XSLT işlemci - program akışı nereye gideceğine karar vermek için küçük bir kontrol verir, ama işlemci şu anda işliyor düğüm için en uygun maç bularak yapar.

Eğer birden çok şablon bir düğüm maçı, daha özel bir ifade kazanır maçı. Eğer aynı özellikte birden fazla eşleşen şablon varsa, son bir galibiyet ilan etti.

Daha fazla gelişmekte olan şablonlar konsantre ve yapmak için daha az zamana ihtiyacınız olabilir "". sıhhi tesisat Programlarınızı daha güçlü ve daha fazla iç içe ve daha hızlı XSLT şablonu eşleşen işlemciler için optimize edilmiş olarak tasarlanmıştı olacak.

XSLT ile anlamak için bir kavram bu "düğüm". mevcut <xsl:apply-templates> akım düğümü <xsl:call-template> geçerli düğüm değiştirmez ise her yineleme ile geçer. I. e. adlı bir şablon içinde . arama şablonu . aynı düğüm anlamına gelir. Bu Uygula-şablonları ile durum böyle değil.

Bu temel farktır. Davranışlarını etkileyen şablonları diğer bazı yönleri vardır: ** 16 priority şablonlar name match Her ikisi de olabilir aslında. Bu şablonu (<xsl:import>) ithal edilmiş olup olmadığını da etkisi vardır. Bu gelişmiş kullanır ve oraya gittiğinde onlarla başa çıkabilirim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BurnedInDotCom

    BurnedInDotC

    3 NİSAN 2010
  • EatingIn

    EatingIn

    12 EKİM 2013
  • Just So

    Just So

    3 HAZİRAN 2007