首页 >> 读书频道 >> 电脑 >> 第14章 XSL变换 删除和保留空白
 
· VB开发通讯软件下
· 第14章 XSL变换
· 第14章 XSL变换
· 第14章 XSL变换
· VB开发通讯软件上
· 第14章 XSL变换
· VB Mscomm控件应
· VB Mscomm控件应
· 第14章 XSL变换
· VB Mscomm控件应
· 编写映射驱动器
· 第14章 XSL变换
 
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

第14章 XSL变换 删除和保留空白


查看有无更新版本

关键字:XML 2006-9-18

 

读者可能已经注意到,到目前为止,所有输出实例的格式化方式都有点奇怪。造成这种现象的原因是,源文档需要将长行划分成多行,以便适合本书页边距的要求。不幸的是,往输入文档中增加额外的空白,就会带到输出文档中。对于计算机来说,毫无意义的空白的具体内容并不重要,但对于人来说,这些空白内容就令人困惑。像ATOMIC_NUMBER或DENSITY元素那样,用于文本节点的缺省行为就是保留所有的空白。常见的DENSITY元素看起来如下面那样:<DENSITY UNITS="grams/cubic centimeter"><!- At 300K ->7.9</DENSITY>当取其值时,值中就会包括首、尾空白(如下所示),尽管这个空白在此处只是用来满足打印页面的要求,但没有什么实际意义:7.9但是,有一种例外的情况。如果文本节点只含有空白,没有其他文本,那么这个空白就认为是毫无意义,并被删除。但对此例外还有一种例外:如果文本先辈的xml:space特性保存有值,那么就不会删除此文本,除非更近的先辈的xml:space特性具有缺省值。(这种情况听起来有点复杂,但实际上很简单。所有的一切都说明,可忽略只含有空白的文本节点,除非这些文本节点明确地设置成有意义的空白。对于其他情况,空白被保留。)如果文档中的任何元素都不保留空白,那么可设置xsl:stylesheet元素的default-space特性为strip,所有的首尾空白在从文本的节点中删除之后,才输出这些节点文本。对于周期表来说,这最容易实现。例如:<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0"default-space="strip">如果想保留所有元素中的空白,可使用xsl:strip-space元素,用它识别输入文档中指定的元素,如果指定的元素表明文档中的空白毫无意义,就不将此空白复制到输出文档中。element特性识别要截去过剩空白的元素。例如,下面的这些规则加到周期表样式单中,可避免过多的空白:<xsl:strip-space element="DENSITY"/><xsl:strip-space element="BOILING_POINT"/><xsl:strip-space element="MELTING_POINT"/>xsl:preserve-space元素与xsl:strip-space元素相反。其element特性命名的元素表示其空白应保留。例如:<xsl:preserve-space element="ATOM"/>样式单内部的空白(正好与输出XML文档中的空白相反)是毫无意义的,在缺省情况下简化为一个空格。这种情况是可以避免的:只需将文字空白放在xsl:text元素之间。例如:<xsl:template select="ATOM"><xsl:text> This is indented exactly five spaces. </xsl:text></xsl:template>处理空白的一个一劳永逸的方法就是将indent-result特性与根xsl:stylesheet元素相关联。如果此特性的值为yes,那么就允许处理程序将多余的空白插入到(而不是删除)输出文档中,以便使输出文档看起来好看一些。这包括缩排和行分隔符。例如:<?xml version="1.0"?><xsl:stylesheet xmlns:xsl=http://www.w3.org/XSL/Transform/1.0indent result="yes"><!- usual templates and such go here... -></xsl:stylesheet>如果生成的是HTML,指定indent-result="yes"就可使输出的文档更具可读性。indent-result的缺省值为no,这是由于其他非HTML的输出格式都可能将空白认为是有意义的。

 

第14章 XSL变换 删除和保留空白

[ 1 ]
第14章 XSL变换 删除和保留空白 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑