📄 deepxsl4.htm
字号:
<p align="JUSTIFY"><b><font face="宋体" lang="ZH-CN" size="3"><span class="normal10"><xsl:template
match="author-group"><br>
</span></font></b><span class="normal10"><b><font face="宋体" lang="ZH-CN" size="3"><span class="normal10"><fo:sequence><br>
<xsl:process select="author/first-name"/><br>
</fo:sequence><br>
</xsl:template></span></font></b></span></p>
<p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">在模式中使用//操作符可以匹配任意的深度.
下例处理在book元素中的所有heading元素.</font></p>
<p align="JUSTIFY"><b><font face="宋体" lang="ZH-CN" size="3"><span class="normal10"><xsl:template
match="book"><br>
</span></font></b><span class="normal10"><b><font face="宋体" lang="ZH-CN" size="3" class="normal10"><fo:block><br>
<xsl:process select=".//heading"/><br>
</fo:block><br>
</xsl:template></font></b></span></p>
<p align="JUSTIFY"></p>
<p align="JUSTIFY"><b><font face="宋体" lang="ZH-CN" size="3">7 直接处理</font></b></p>
<p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3"><span class="normal105">当结果是已知的规则结构,能够直接确定选择元素的模板是很有益的.<b>
xsl:for-each</b>元素包括一个模板,它具体实现由<b>select</b>属性规定的每个选择元素.比如对下面的XML文档:</span></font></p>
<p align="JUSTIFY"><b><font face="宋体" lang="ZH-CN" size="3"><span class="normal10"><customers><br>
</span></font></b><span class="normal10"><b><font face="宋体" lang="ZH-CN" size="3"><span class="normal10"><customer><br>
<name>...</name><br>
<order>...</order><br>
<order>...</order><br>
</customer> <br>
<customer><br>
<name>...</name><br>
<order>...</order><br>
<order>...</order><br>
</customer><br>
</customers></span></font></b></span></p>
<p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3" class="normal105">下面的XSL将生成一个HTML文档,包括一个表格,其中的一行就为一个custom元素</font></p>
<p align="JUSTIFY"><b><font face="宋体" lang="ZH-CN" size="3"><span class="normal10"><xsl:template
match="/"></span><br>
<span class="normal10"><HTML><br>
</span></font></b><span class="normal10"><b><font face="宋体" lang="ZH-CN" size="3"><span class="normal10"><HEAD><br>
<TITLE>Customers</TITLE><br>
</HEAD><br>
<BODY><br>
<TABLE><br>
<TBODY><br>
<xsl:for-each select="customers/customer"><br>
<TR><br>
<TH><br>
<xsl:process select="name"/><br>
</TH><br>
<xsl:for-each select="order"><br>
<TD><br>
<xsl:process-children/><br>
</TD><br>
</xsl:for-each><br>
</TR><br>
</xsl:for-each><br>
</TBODY><br>
</TABLE><br>
</BODY><br>
</HTML><br>
</xsl:template></span></font></b></span></p>
<p align="JUSTIFY"></p>
<p align="JUSTIFY"><b><font face="宋体" lang="ZH-CN" size="3">8 模板中的条件</font></b></p>
<p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3"><span class="normal105">XSL中有两个指令来支持条件处理:
<b>xsl:if</b>和<b>xsl:choose</b>.<b> xsl:if</b>指令提供简单的i<b>f-then</b>的条件选择;
<b>xsl:choose</b>支持多条件的选择.</span></font></p>
<p align="JUSTIFY"></p>
<p align="JUSTIFY"><b><font face="宋体" lang="ZH-CN" size="3">9 计算产生的文本</font></b></p>
<p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3"><span class="normal105">在模板中,
<b>xsl:value-of</b>元素能用于计算产生的文本,比如通过从源树中提取文本或插入字符常数的值.<b> 它由xsl:value-of</b>元素通过一个规定为<b>expr</b>
属性值的字串表达式来实现. 字串表达式也能在文字结果元素的属性值中使用,只要将该字串表达式套入{}中.</span></font></p>
<p align="JUSTIFY"><b><font face="宋体" lang="ZH-CN" size="3">10 宏</font></b></p>
<p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size=3><span class="normal105">宏能产生结果集合还能被引用,就象一个单独的对象.在下例中,为一封装的段落定义了一个宏,在其内容之前增加</span></font><span class="normal105"><font face="TimesNewRoman,Times New Roman" size=3>“</font><font face="宋体" lang="ZH-CN" size=3>Warning!</font><font face="TimesNewRoman,Times New Roman" size=3>”</font><font face="宋体" lang="ZH-CN" size=3>语句.在匹配<b>warning</b>元素的规则中该宏被引用.</font></span></p>
<p align="JUSTIFY"><font face="宋体" lang="ZH-CN" size="3"><b><span class="normal10"><xsl:define-macro
name="warning-para"><br>
</span></b></font><span class="normal10"><font face="宋体" lang="ZH-CN" size="3"><b><span class="normal10"><fo:box><br>
<fo:block><br>
<xsl:text>Warning! </xsl:text><br>
<xsl:contents/><br>
</fo:block><br>
</fo:box><br>
</xsl:define-macro><br>
<xsl:template match="warning"><br>
<xsl:invoke macro="warning-para"><br>
<xsl:process-children/><br>
</xsl-invoke><br>
</xsl:template></span></b></font></span></p>
<p class="normal11" align="left"><span class="normal105"><span class="normal10"><span class="normal105">上一篇:<font lang=ZH-CN class="normal9"><a href="DeepXSL3.htm" tppabs="http://www.xml.org.cn:8188/resource/article/deepxsl/DeepXSL3.htm" target="_parent">深入XSL(3)--模板规则和模式</a></font><br>
下一篇:<a href="DeepXSL5.htm" tppabs="http://www.xml.org.cn:8188/resource/article/deepxsl/DeepXSL5.htm"><span class="normal11"><b>深入XSL(5)--联合样式表</b></span></a></span></span></span></p>
</td>
</tr>
<tr>
<td colspan="3"><font face="宋体" lang="ZH-CN" size=3> </font> <rev></rev><font face="宋体" lang="ZH-CN" size=3></font>
<hr size="1">
<p align="center"><font face="宋体" lang="ZH-CN"><span class="normal11">[<a href="#top">返回标题</a>][<a href="../../resource.htm" tppabs="http://www.xml.org.cn:8188/resource/resource.htm" target="_parent">返回资源</a>][<a href="../../../default.asp.htm" tppabs="http://www.xml.org.cn:8188/default.asp" target="_parent">返回首页</a>][<a href="mailto:xml@tangram.com.cn">欢迎投稿</a>]</span></font></p>
<p align="center"><span class="normal11">最后更新:1999年8月24日<br>
<font color="#FF0033" size="-1">本站点所刊文章版权,均归本站点所有。署名作者拥有其著作权。<br>
未经</font><font color="#FF0033"><a href="mailto:xml@tangram.com.cn"><font color="#6666FF" size="-1">允许</font></a></font><font color="#FF0033" size="-1">,不得随意转载,违者必究!!</font>
</span></p>
</td>
</tr>
</table>
<h2 ALIGN="CENTER"> </h2>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"> </P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3></FONT>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -