87 lines
2.6 KiB
XML
87 lines
2.6 KiB
XML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
|
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<xsl:output method="xml" encoding="ISO-8859-1" indent="yes" />
|
|
|
|
<!-- Fill dynamic content -->
|
|
<xsl:template match="dynamic-content">
|
|
<xsl:for-each select="/html/set/contact">
|
|
<xsl:sort select="@id" />
|
|
|
|
<xsl:variable name="country">
|
|
<xsl:value-of select="@id" />
|
|
</xsl:variable>
|
|
|
|
<!-- Heading -->
|
|
<xsl:element name="h3">
|
|
<xsl:value-of select="/html/set/country[@id=$country]" />
|
|
</xsl:element>
|
|
|
|
<!-- Email -->
|
|
<xsl:if test="email != ''">
|
|
<xsl:element name="p">
|
|
<xsl:value-of select="/html/text[@id='email']" />
|
|
<xsl:text> </xsl:text>
|
|
<xsl:element name="a">
|
|
<xsl:attribute name="href">
|
|
<xsl:text>mailto:</xsl:text>
|
|
<xsl:value-of select="email" />
|
|
</xsl:attribute>
|
|
<xsl:value-of select="email" />
|
|
</xsl:element>
|
|
</xsl:element>
|
|
</xsl:if>
|
|
|
|
<!-- Phone -->
|
|
<xsl:if test="phone != ''">
|
|
<xsl:element name="p">
|
|
<xsl:value-of select="/html/text[@id='phone']" />
|
|
<xsl:text> </xsl:text>
|
|
<xsl:value-of select="phone" />
|
|
</xsl:element>
|
|
</xsl:if>
|
|
|
|
<!-- Fax -->
|
|
<xsl:if test="fax != ''">
|
|
<xsl:element name="p">
|
|
<xsl:value-of select="/html/text[@id='fax']" />
|
|
<xsl:text> </xsl:text>
|
|
<xsl:value-of select="fax" />
|
|
</xsl:element>
|
|
</xsl:if>
|
|
|
|
<!-- Core team members -->
|
|
<xsl:element name="p">
|
|
<xsl:choose>
|
|
<xsl:when test="count(/html/set/person[count(country[text()=$country])>0])>0">
|
|
<xsl:value-of select="/html/text[@id='members']" />
|
|
<xsl:text> </xsl:text>
|
|
<xsl:for-each select="/html/set/person[count(country[text()=$country])>0]">
|
|
<xsl:if test="position()!=1">
|
|
<xsl:text>, </xsl:text>
|
|
</xsl:if>
|
|
<xsl:value-of select="name" />
|
|
</xsl:for-each>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="/html/text[@id='nomembers']" />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:element>
|
|
|
|
</xsl:for-each>
|
|
</xsl:template>
|
|
|
|
<!-- Do not copy <set> and <text> to output at all -->
|
|
<xsl:template match="set" />
|
|
<xsl:template match="text" />
|
|
|
|
<!-- For all other nodes, copy verbatim -->
|
|
<xsl:template match="@*|node()" priority="-1">
|
|
<xsl:copy>
|
|
<xsl:apply-templates select="@*|node()"/>
|
|
</xsl:copy>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|