中华八爪的小窝棚

Rejection is a question, not an answer.

向华ID:foxiang
44073次访问,排名2493好友0人,关注者0
foxiang的文章
原创 41 篇
翻译 2 篇
转载 31 篇
评论 24 篇
中华八爪的公告
在不可触及的时间与空间,我的天使在暗香中独舞。
偏执者生存,软弱者倾颓。


最近评论
yuji821:答案很多不对呀
vvukqr:WoW Gold
prayzhang:: ArcGIS Server 开发系列(二)--Web ADF 编程
我在帮助上看,一个简单的WEB浏览器就可以打开WMS服务。
WMS是不是就是个一般的地图呢》》请问
问什么我输入URL的时候报错捏。。
难道普通的IE浏览器不可以显示打开吗
opernlayers是什么东东啊
csShooter:3.类成员有__3__种可访问形式?
-----------------
有误,public\protected\internal\private
complayer:ITopologicalOperator、IRelationalOperator很多时候有奇怪的错误,bug太多,非常难用。
文章分类
收藏
相册
薄雾升阳
城市之光
杭州千岛湖上海行
米亚罗的雪景
偶丁
仙女山旅行
一撮焰火
英雄传说6
云南之行
地球 Earth
畅游(电子报)
金星 Venus
天空的风筝
娓娓道来
未尝有言
深水蔚蓝
狸猫 in Spring(RSS)
静谧‖花园
天王星 Uranus
一橙陶然(RSS)
八楼的星光
再谦专栏
刘寓专栏
巧奇的沙滩(RSS)
打不到的小强
明月映一帆
波波的QQZone
班头的QQZone
网际蓝猫
老张的路(RSS)
菜花和菜头
蓝色的黑洞
重庆放北
月亮 Moon
他是尹子睿
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

转载 XSLT表达式处理技术收藏

新一篇: 我的偏执和寻思 | 旧一篇: 老唐谈沙龙病重

我们将选择你已经在以前的信息里了解的各种各样的功能和表达方式并且描述怎样把他们嵌入在处理指令的顺序里面。通常,这发生在一些标记的元素或者其他标记的元素的范围内,因为这些元素在XSLT里履行了特定的角色的功能,和在很多编程语言内的那些函数或者子程序调用所起到的作用相同。 实际上,在特定的上下文中,你将发现XSLT中的大多数反复和递归结构都靠岸工作的——在接下来的讲解中将会了解到。

  操纵和处理特定的文档节点

  使用<xsl:call-template>来处理一些节点而不是现在的文档节点,最迅速的技术是将元素<xsl:call-template>置于一个<xsl:for-each>元素内部,但是你也可以为一个目标模板提供一个唯一的节点名字,并且使用<xsl:apply-template>元素来应用于一些具体的节点。但是,"为每一个"建造, 是完全反复并且在特定的情形里更有意义的,在这些特定的情况下,在一份文档或者结果树里的全部节点无论如何都需要被处理。 你将发现这种方法的例子,有人在Michael Kay的XSLT 程序员参考里完全地详细说明。他也解释一种灵巧的技术,该技术描述了在一个<xsl:variable>元素里面调用<xsl:call-template>的方法。在<xsl:variable>元素里,一个简单的从结果树到字符行为的转换就好像<xsl:call-template>元素正从它的调用中返回的一个结果。  如果cite属性的值是Horn79,那么变量cite-in-brackets 的结果值为 [Horn79 ].

  这类过程的结构可能被如下的方式说明, 在下面已给在方括号内的装入的字符值的模版在一个变量元素内被调用。

<!-- start with template definition, proceed to variable
     element -->
<xsl:template name="bracketit">
  <xsl:param name="string" />
  <xsl:value-of select="concat("'[', $string, ']')"/>
</xsl:template>

<xsl:variable name="cite-in-brackets">
  <xsl:call-template name="bracketit"/>
    <xsl:with-param name="string" select="@cite"/>
  </xsl:call-template>
</xsl:variable>

 

  使用递推处理项目列表

  XSLT没有像使用在传统的编程语言里的用来处理具体的计数行为的计数器一样的自动增加的变量,也不支持传统语言中的有条件的循环结构,例如while, for, 或者until 。 但是XSLT确实支持递推,提供一种方便的方法达到相同的目的。这个过程的这种方法导致了递归函数调用的建立, 这里功能接连不断被用于在一个列表中的第一个节点或者一个字符串里面的第一个非空节点, 并且功能也被适用于列表节点或者字符串的剩余部分——即在带有第一个要素或者字符顺序从它的内容除去后剩下的部分。 对每种类型的数据来说,处理会一直进行,直到列表或者字符串是空的的时候,即当不再有节点出现或者非空的字符存在在剩余的部分的时候。在他的书名为Mastering XSLT 的Sybex书中,Chuck White 指出XSLT 该方法是"重复每一个命名了的表达式的实例的结果片段。"

  管理有条件处理

   <xsl:choose> 和<xsl:when> 元素允许可能需要多个选择的条件转移;一个<xsl:otherwise>元素甚至允许明确处理那些没有通过确定的具体的测试的项目。 那些基本句法提供一个看起来很象典型的具有特定的嵌套的if-then-else语句的构造结构。White清楚地说明了下面的这些在Mastering XSLT的语句在去除了实际的赋值或者限制之后的基本句法。

<xsl:choose>
  <xsl:when test="expression">
     <!-- processing statements -->
  </xsl:when>
  <xsl:otherwise>
     <!-- processing statements -->
  </xsl:otherwise>
</xsl:choose>

  鉴于XSLT 如此容易支持的各种各样的技术,这使得你可以相当容易的构建你自己的处理在遍历,递推和有条件的测试技术方面的例子的文档。 你也能再访XSLT的指导,来获得更多的插图和例子,或者也可以翻阅更精心制作和冗长的例子的Sal Mangano的XSLT Cookbook (O'Reilly, 2003),那些例子你都能直接的在你的应用中轻松的导入和选择。

 

发表于 @ 2006年07月18日 13:38:00|评论(loading...)|编辑

新一篇: 我的偏执和寻思 | 旧一篇: 老唐谈沙龙病重

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © 中华八爪