Voici un fichier xmléléments xml Position
<?xml version="1.0" encoding="UTF-8"?>
<contact-information>
<full-name>Peter John</full-name>
<address_line_1>some place</address_line_1>
<address_line_2>some place2</address_line_2>
<city>some city</city>
<state>some state</state>
<zip>54000</zip>
<country>some country</country>
<phone>2121314144</phone>
<email>[email protected]</email>
</contact-information>
<professional-experience-section>
<section-name>PROFESSIONAL EXPERIENCE</section-name>
<enabled>true</enabled>
<company>
<name>Computer Sciences Corporation</name>
<city>New York</city>
<state>NY</state>
<country>United States</country>
<job-title>
<title>Senior Software Engineer</title>
<start-date>Aug 1996</start-date>
<end-date>May 2010</end-date>
<ongoing>false</ongoing>
<job-description>
<bullet-point>
<statement>C#, Visual Basic, Asp.net</statement>
</bullet-point>
<bullet-point>
<statement>Inspect completed work to ensure conformance to specifications, standards, and contract requirements.</statement>
</bullet-point>
<bullet-point>
<statement>Another Work Description.</statement>
</bullet-point>
</job-description>
</job-title>
</company>
<company>
<name>Acme</name>
<city>Silver Spring</city>
<state>MD</state>
<country>United States</country>
<job-title>
<title>Manager</title>
<start-date>Jul 2010</start-date>
<end-date>present</end-date>
<ongoing>true</ongoing>
<job-description>
<bullet-point>
<statement>Report to management regarding the finances of establishment.</statement>
</bullet-point>
<bullet-point>
<statement>Prepare, examine, or analyze accounting records, financial statements, or other financial reports to assess accuracy, completeness, and conformance to reporting and procedural standards.</statement>
</bullet-point>
<bullet-point>
<statement>Prepare, examine, or analyze accounting records, financial statements, or other financial reports to assess accuracy, completeness, and conformance to reporting and procedural standards.</statement>
</bullet-point>
</job-description>
</job-title>
<job-title>
<title>Analyst</title>
<start-date>Jul 2001</start-date>
<end-date>Jan 2010</end-date>
<ongoing>false</ongoing>
<job-description>
<bullet-point>
<statement>Study and rehearse roles from scripts in order to interpret, learn and memorize lines, stunts, and cues as directed.</statement>
</bullet-point>
<bullet-point>
<statement>Work closely with directors, other actors, and playwrights to find the interpretation most suited to the role.</statement>
</bullet-point>
</job-description>
</job-title>
</company>
</professional-experience-section>
<education-section>
<section-name>EDUCATION</section-name>
<enabled>true</enabled>
<institution>
<name>Allston Community College</name>
<city>Akron</city>
<state>MA</state>
<country>United States</country>
<degree>Bachelor of Art in Marketing Candidate</degree>
<end-date>Jan 2020</end-date>
<ongoing>true</ongoing>
<expected-completion-date>Jan 2020</expected-completion-date>
<completed></completed>
<bullet-point>
<statement>detail of what i did at the allston community college</statement>
</bullet-point>
</institution>
<institution>
<name>Boston College</name>
<city>Boston</city>
<state>MA</state>
<country>United States</country>
<degree>Bachelor of Science in Information Systems</degree>
<end-date>Jul 1990</end-date>
<ongoing>false</ongoing>
<expected-completion-date></expected-completion-date>
<completed>true</completed>
<bullet-point>
<statement>Lorem Ipsum</statement>
</bullet-point>
</institution>
<institution>
<name>Testing</name>
<city>Testing</city>
<state>PA</state>
<country>United States</country>
<degree>Completed coursework towards Bachelor of Art in Marketing</degree>
<end-date>Mar 1963</end-date>
<ongoing>false</ongoing>
<expected-completion-date></expected-completion-date>
<completed>false</completed>
<bullet-point>
<statement>Lorem Ipsum</statement>
</bullet-point>
</institution>
<institution>
<name>Testing</name>
<city>Testing</city>
<state>PA</state>
<country>United States</country>
<degree>Completed coursework towards Bachelor of Art in Marketing</degree>
<end-date>Mar 1963</end-date>
<ongoing>false</ongoing>
<expected-completion-date></expected-completion-date>
<completed>false</completed>
<bullet-point>
<statement>Lorem Ipsum</statement>
</bullet-point>
</institution>
</education-section>
<additional-skills-section>
<section-name>ADDITIONAL SKILLS</section-name>
<enabled>true</enabled>
<layout>1 Column</layout>
<bullet-point>
<statement>Additional Skills 1</statement>
</bullet-point>
</additional-skills-section>
<custom-section>
<section-name>PUBLICATIONS</section-name>
<layout>2</layout>
<bullet-point>
<statement>test</statement>
</bullet-point>
</custom-section>
Ce fichier XML est transformé par le xsl suivant:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/resume">
<xsl:value-of select="/resume/contact-information/full-name"/>
<xsl:value-of select="/resume/contact-information/address_line_1"/>
<xsl:value-of select="/resume/contact-information/address_line_2"/>
<xsl:value-of select="/resume/contact-information/city"/>
<xsl:value-of select="/resume/contact-information/state"/>
<xsl:value-of select="/resume/contact-information/country"/>
<xsl:value-of select="/resume/contact-information/phone"/>
<xsl:for-each select="/resume/professional-experience-section/company">
<!--for company name-->
<xsl:value-of select="name"/>
<xsl:value-of select="city"/>, <xsl:value-of select="state"/>
<xsl:value-of select="country"/>
<!--loop into job title-->
<xsl:for-each select="job-title">
<!--for job title-->
<xsl:value-of select="title"/>
<!--for job start date and job end date-->
<xsl:value-of select="start-date"/> – <xsl:value-of
select="end-date"/>
<!--Loop into job description-->
<xsl:for-each select="job-description">
<!--loop into each bullet point-->
<xsl:for-each select="bullet-point">
<xsl:value-of select="statement"/>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
<!--education section-->
<!--for education section's section name-->
<xsl:value-of select="/resume/education-section/section-name"/>
<!--loop into each institution name-->
<xsl:for-each select="/resume/education-section/institution">
<!--for institution name -->
<xsl:value-of select="name"/>
<!--for institution city and state-->
<xsl:value-of select="city"/>, <xsl:value-of select="state"/>
<xsl:value-of select="country"/>
<!--for degree of a particular institution-->
<xsl:value-of select="degree"/>-<xsl:value-of select="expected-completion-date"/>
<xsl:for-each select="bullet-point">
<xsl:for-each select="statement" >
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
La section professionnelle sera toujours rendue avant la section pédagogique. Je veux développer un mécanisme que les sections peuvent être changées dans xsl par exemple si je veux que l'information de la section éducative soit montrée d'abord au lieu de professionnelle en utilisant une sorte d'entrée et je n'ai pas à le faire manuellement. Comment dois-je changer le fichier xml ou xsl afin que je puisse changer l'ordre de chaque section au moment de l'exécution dans le xsl indiqué ci-dessus?
Bonne question, +1. Voir ma réponse pour une solution rapide et complètement paramétrée. :) –