2010-08-15 6 views
2

Je viens juste de commencer à transformer l'aide XSL XML en HTML et je suis hopping pour obtenir de l'aide avec les éléments suivants pour me aider à plongerexemple de base XSLT

XML Compte tenu comme ce qui suit (A):.

<Course Title="SampleCourse"> 
    <Lesson Title="Overview"/> 
    <Section Title="Section1"> 
    <Lesson Title="S1 Lesson 1" /> 
    <Lesson Title="S1 Lesson 2" /> 
    </Section> 
    <Section Title="Sections 2"> 
    <Lesson Title="S2 Lesson 1" /> 
    </Section> 
</Course> 

Ou comme (B):

<Course Title="SampleCourse"> 
    <Section Title="Section1"> 
    <Lesson Title="S1 Lesson 1" /> 
    <Lesson Title="S1 Lesson 2" /> 
    </Section> 
    <Section Title="Sections 2"> 
    <Lesson Title="S2 Lesson 1" /> 
    </Section> 
</Course> 

Comment puis-je produire un fichier XSL qui pourrait transformer les exemples ci-dessus (A):

<h3>SampleCourse</h3> 
<ul> 
    <li>Overview</li> 
    <li>Section1</li> 
    <ul> 
    <li>S1 Lesson 1</li> 
    <li>S1 Lesson 2</li> 
    </ul> 
    <li>Sections 2</li> 
    <ul> 
    <li>S1 Lesson 1</li> 
    </ul> 
</ul> 

ou (B):

<h3>SampleCourse</h3> 
<ul> 
    <li>Section1</li> 
    <ul> 
    <li>S1 Lesson 1</li> 
    <li>S1 Lesson 2</li> 
    </ul> 
    <li>Sections 2</li> 
    <ul> 
    <li>S1 Lesson 1</li> 
    </ul> 
</ul> 

Merci!

Répondre

5
<xsl:template match="Course"> <!-- We use template to define what shows up when we encounter the element "Course" --> 
    <h3><xsl:value-of select="@Title"/></h3> <!-- value-of is used here to grab the title. @ is for attribute. --> 
    <ul> 
     <xsl:apply-templates/> <!-- apply-templates continues parsing down the tree, looking for more template matches. --> 
    </ul> 
</xsl:template> 

<xsl:template match="Section"> 
    <li><xsl:value-of select="@Title"/></li> 
    <ul> 
     <xsl:apply-templates/> 
    </ul> 
</xsl:template> 

<xsl:template match="Lesson"> 
    <li><xsl:value-of select="@Title"/></li> 
</xsl:template> 
+2

Merci, cela m'a rendu très clair, très apprécié! (Une petite note à tout n de coupe comme moi, @title devrait être @Titre avec l'exemple ci-dessus) – Evan

+0

Oups, oui; édité. :) – andyvn22

+0

+1 Bonne réponse! –