我正在建立彼得的回答,以解决实际上不正确的评论之一。您问是否必须使用说明,彼得说“是”,但实际上这是不正确的。
使用 Peter 的输入文件:
<?xml version="1.0" encoding="UTF-8"?>
<menu>
<pizzas attribute="CAT">
<pizza>
<name>Tomato & Cheese</name>
<small>5.50</small>
<large>9.75</large>
</pizza>
</pizzas>
</menu>
您会得到以下结果,这与 Peter 的结果相同:
<?xml version="1.0" encoding="utf-8"?><output>CAT</output>
当您使用此 XSLT 样式表时:
<output xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xsl:version="1.0">
<xsl:value-of select="/menu/pizzas/@attribute"/>
</output>
这种样式表编写方式称为“简化”样式表。以下是使用 Saxon 在 DOS 提示符下运行的上述脚本:
t:\ftemp>type pizza.xml
<?xml version="1.0" encoding="UTF-8"?>
<menu>
<pizzas attribute="CAT">
<pizza>
<name>Tomato & Cheese</name>
<small>5.50</small>
<large>9.75</large>
</pizza>
</pizzas>
</menu>
t:\ftemp>call xslt pizza.xml pizza.xsl
<?xml version="1.0" encoding="utf-8"?><output>CAT</output>
t:\ftemp>type pizza.xsl
<output xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xsl:version="1.0">
<xsl:value-of select="/menu/pizzas/@attribute"/>
</output>
t:\ftemp>rem Done!
所以,事实上,你不需要<xsl:stylesheet>
并且<xsl:template>
对于你所拥有的简单要求。