<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<manual type="assembly" id="model-rocket">
<parts-list>
<part label="A" count="1">fuselage, left half</part>
<part label="B" count="1">fuselage, right half</part>
<part label="F" count="4">steering fin</part>
<part label="N" count="3">rocket nozzle</part>
<part label="C" count="1">crew capsule</part>
</parts-list>
<instructions>
<step>
Glue <part ref="A"/> and <part ref="B"/> together to form the
fuselage.
</step>
<step>
For each <part ref="F"/>, apply glue and insert it into slots in the
fuselage.
</step>
<step>
Affix <part ref="N"/> to the fuselage bottom with a small amount of
glue.
</step>
<step>
Connect <part ref="C"/> to the top of the fuselage. Do not use
any glue, as it is spring-loaded to detach from the fuselage.
</step>
</instructions>
</manual>
xslt file:<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
>
<xsl:output method="html" encoding="ISO-8859-1" />
<xsl:template match="manual">
<html>
<head><title>Instrutions Guide</title></head>
<body>
<h1>Instructions Guide</h1>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="parts-list">
<h2>Parts</h2>
<dl>
<xsl:apply-templates/>
</dl>
</xsl:template>
<xsl:template match="part[@label]">
<dt>
<xsl:value-of select="@label"/>
</dt>
<dd>
<xsl:apply-templates/>
</dd>
</xsl:template>
<xsl:template match="part[@ref]">
<xsl:variable name="label" select="@ref" />
<xsl:value-of select="//part[@label=$label]" />
<xsl:text> (Part </xsl:text>
<xsl:value-of select="@ref" />
<xsl:text> ) </xsl:text>
</xsl:template>
</xsl:stylesheet>
属性的设置可以覆盖的,所以如果第一个template是对manaul的设置,并不
意味着将整个xml文件按照设置输出,还要看后面的对各个element的样式设置.