曝光台 注意防骗
网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者
根元素中的顶级元素中。例如,下面的这些xsl:import 元素导入genealogy.xsl 和standards.xsl 样式单。
<xsl:stylesheet
xmlns:xsl=”http://www.w3.org/XSL/Transform/1.0”>
<xsl:import href=”genealogy.xsl”/>
<xsl:import href=”standards.xsl”/>
<!- other child elements follow ->
</xsl:stylesheet>
导入的样式单中的规则可能与执行导入的样式单中的规则发生冲突。如果真是这样,那么执行导入的样式单中的规则优先。
如果不同的被导入样式单中的两个规则发生冲突,那么最后那个被导入的(如上面例子中的standards.xsl)优先。
xsl:apply-imports 元素与xsl:apply-templates 有点差别,后者只使用被导入的规则。xsl:apply-imports 元素不使用执
行导入的样式单中的任何规则。这样就可以访问被导入的规则,否则被导入的规则就会被执行导入的样式单中的规则所覆盖。
除了名称不同外,xsl:apply-imports 与xsl:apply-templates 有一样的句法,唯一的作用方式差别是它只与被导入样式单
中的模板规则匹配。
14.19.2 使用xsl:include 进行包括
xsl:include 元素也是顶级元素,它将另一个样式单复制到当前样式单中它所出现的位置处(更确切是说,它将远程文档中
xsl-stylesheet 元素的内容复制到当前文档中)。它的href 特性提供要包括的样式单的URI。xsl:include 元素可放在顶
级处于最后那个xsl:import 元素之后的任何地方。
不像xsl: imporlt 元素所包括的规则那样,xsl:include 元素所包括的规则与执行包括的样式单中的规则具有同样的优先
级,利用这种优先级关系来决定是否从一个样式单到另一个样式单的复制和粘贴。对于格式化引擎来说,被包括的规则与实
际存在的规则之间没有任何区别。
14.19.3 使用xsl:stylesheet 在文档中嵌入样式单
可直接将XSL 样式单包括在使用它的XML 文档中。实际上,我不推荐这种方法,而且浏览器和格式化引擎也不一定支持这一
作法。但是,有几个浏览器和格式化引擎却支持这一作法。为达此目的,xsl:stylesheet 元素必须以文档元素的子元素而
不是根元素本身的形式出现。它可能有一个id 特性,用来为其取唯一的名称,此id 特性是作为xsl:stylesheet 处理指令
中的href 特性值的形式出现的,紧跟在的anchor(锚)标识符(#)之后。清单14-20 演示此过程:
XML 实用大全
第 529 页
清单14-20:在XML 文档中嵌入的XSL 样式单
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="#id(mystyle)"?>
<PERIODIC_TABLE>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/XSL/Transform/1.0"
id= "mystyle ">
<xsl:template match="/">
<html>
<xsl:apply-templates/>
</html>
</xsl:template>
<xsl:template match="PERIODIC_TABLE">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="ATOM">
<P>
<xsl:value-of select="."/>
</P>
</xsl:template>
</xsl:stylesheet>
<ATOM>
<NAME>Actinium</NAME>
<ATOMIC_WEIGHT>227</ATOMIC_WEIGHT>
XML 实用大全
第 530 页
<ATOMIC_NUMBER>89</ATOMIC_NUMBER>
<OXIDATION_STATES>3</OXIDATION_STATES>
<BOILING_POINT UNITS="Kelvin">3470</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">1324</MELTING_POINT>
<SYMBOL>Ac</SYMBOL>
<DENSITY_UNITS="grams/cubic centimeter"><!- At 300K ->
10.07
</DENSITY>
<ELECTRONEGATIVITY>1.1</ELECTRONEGATIVITY>
<ATOMIC_RADIUS UNITS="Angstroms">1.88</ATOMIC_RADIUS>
</ATOM>
</PERIODIC_TABLE>
XML 实用大全
第 531 页
14.20 本章小结
在本章,学习了有关XSL 变换的内容。包括如下一些内容:
• 可扩展的样式语言(Extensible Style Language,XSL)是由两个独立的XML 应用程序(分别用于转换和格式化
XML 文档)组成。
• XSL 转换将规则应用于从XML 文档中读入的一个树形结构中,以便将它转换成一个以XML 文档编写的输出树形
结构中。
• XSL 模板规则是一个带有match 特性的xsl:template 元素。输入树形结构中的节点与不同模板元素match 特性的
模式进行比较。当找到匹配时,即输出模板的内容。
• 节点的值是含有节点内容的纯文本(不是标记),可由xsl:value-of 元素获得。
• 可以由两种方法处理多个元素:xsl:apply-templates 元素和xsl:for-each 元素。
• xsl:template 元素的match 特性值是匹配模式,用以指定模板与哪个节点匹配。
• 选择表达式为match 特性的超集,由xsl:apply-templates、xsl:value-of、xsl:for-each、xsl:copy-of、xsl:sort 以及
其他各种元素的select 特性所使用。
• 两个缺省的规则将模板应用于元素节点,并取文本节点的值。
• xsl:element、xsl:attribute、xsl:pi、xsl:comment 和xsl:text 元素可输出元素、特性、处理指令、注释以及文本,
这些输出结果都可以从输入文档中的数据进行运算获得。
• xsl:attribute-set 元素定义常用的一组特性,从而使用xsl:use 元素,将这组特性用于不同模板中的多个元素。
• xsl:copy 元素将当前输入节点复制到输出文档中。
• xsl:number 元素使用format 特性所给出的指定数字格式,将expr 特性中指定的数字插入到输出文档中。
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:
XML实用大全(149)