這裏是一個XML文件XML元素位置
<?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>
此xml文件由下面的xsl轉化:
<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>
專業部分將始終呈現在教育部分之前。我想開發一種機制,可以在xsl中更改部分,例如,如果我想通過使用某種輸入來顯示教育部分的信息而不是專業人員,並且我不需要手動執行操作,我應該如何更改xml或xsl文件,以便我可以在運行時更改上面列出的xsl中的每個部分的順序?
好問題,+1。查看我的答案以獲得快速且完全參數化的解決方案。 :) – 2010-11-22 00:06:06