初学xml vs xslt

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

xml file:

<?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的样式设置.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有