📄 0403-0400.htm
字号:
<TD width="40%">
<P align=center><STRONG>举 例</STRONG></P></TD>
<TD width="40%">
<P align=center><STRONG>含 义</STRONG></P></TD></TR>
<TR>
<TD align=middle width="20%" rowSpan=2>按大小写排序</TD>
<TD width="40%"><xsl:sort case-order="upper-first"
select="@id"/></TD>
<TD width="40%">以id为关键字按大写优先排序</TD></TR>
<TR>
<TD width="40%"><xsl:sort case-order="lower-first"
select="@id"/></TD>
<TD width="40%">以id为关键字按小写优先排序</TD></TR>
<TR>
<TD align=middle width="20%" rowSpan=2>按字母顺序排序</TD>
<TD width="40%"><xsl:sort order="ascending" select="@id "/></TD>
<TD width="40%">以id为关键字按字母升序排序</TD></TR>
<TR>
<TD width="40%"><xsl:sort order="descending" select="@id
"/></TD>
<TD width="40%">以id为关键字按字母降序排序</TD></TR>
<TR>
<TD align=middle width="20%" rowSpan=2>按数据类型排序</TD>
<TD width="40%"><xsl:sort data-type="text" select="@id"/></TD>
<TD
width="40%">以id为关键字按文本类型排序,如对于一组id数据101,2,44,305来说,排序结果是101,2,305,44</TD></TR>
<TR>
<TD width="40%"><xsl:sort data-type="number" select="@id"/></TD>
<TD
width="40%">以id为关键字按数据类型排序,上面一组数据的排序结果是2,44,101,305</TD></TR></TBODY></TABLE></CENTER></DIV>
<P>另外,还有一种指定排序的方法,就是在前面学生花名册例中所使用的order-by:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><xsl:for-each select="student"
order-by="name"></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>也可使得输出学生时按名字排序。
<OL start=6>
<LI><STRONG>元素与属性创建</STRONG> </LI></OL>
<P>XSLT是一个动态的样式单,在处理过程中可产生新的元素或元素属性,方法如下:</P>
<DIV align=center>
<CENTER>
<TABLE width="90%" border=1>
<TBODY>
<TR>
<TD align=middle width="15%"><STRONG>内 容</STRONG></TD>
<TD align=middle width="15%"><STRONG>元 素</STRONG></TD>
<TD align=middle width="35%"><STRONG>举 例</STRONG></TD>
<TD align=middle width="35%"><STRONG>转换结果</STRONG></TD></TR>
<TR>
<TD align=middle width="15%">创建元素</TD>
<TD width="15%">xsl:element</TD>
<TD width="35%"><xsl:element
name="TITLE"><BR>学生花名册<BR></xsl:element></TD>
<TD width="35%"><TITLE>学生花名册</TITLE></TD></TR>
<TR>
<TD align=middle width="15%">创建属性</TD>
<TD width="15%">xsl: attribute</TD>
<TD width="35%"><TITLE><BR><xsl:attribute
name="style"><BR>color:blue
<BR></xsl:attribute><BR>学生花名册<BR></TITLE ></TD>
<TD width="35%"><TITLE
style="color:blue"><BR>学生花名册<BR></TITLE></TD></TR>
<TR>
<TD align=middle width="15%">创建文本</TD>
<TD width="15%">xsl:text<BR>(可以保护文本中的空白字符)</TD>
<TD width="35%"><xsl:text> <BR>这是学生花名册 <BR></xsl:text >
</TD>
<TD width="35%">输出文字:<BR>这是学生花名册</TD></TR>
<TR>
<TD align=middle width="15%">创建处理指令</TD>
<TD width="15%">xsl:processing-instruction</TD>
<TD width="35%"><xsl:processing-instruction
name="xml-stylesheet"><BR>href="book.css"<BR>type="text/css"<BR></xsl:processing-instruction></TD>
<TD width="35%"><?xml-stylesheet href="book.css"
type="text/css"?><BR></TD></TR>
<TR>
<TD align=middle width="15%">创建注释</TD>
<TD width="15%">xsl:comment</TD>
<TD
width="35%"><xsl:comment><BR>以下是学生花名册,请勿删改!<BR></xsl:comment></TD>
<TD width="35%"><!--
以下是学生花名册,请勿删改!--></TD></TR></TBODY></TABLE></CENTER></DIV>
<OL start=7>
<LI><STRONG>节点拷贝</STRONG> </LI></OL>
<P>在对XML文档进行处理时,XSLT还可以通过拷贝的方式复制节点,方法是利用xsl:copy和xsl:copy-of。其中xsl:copy只拷贝当前节点,不包括子节点和属性;而xsl:copy-of的拷贝内容则包括当前节点、子节点和属性。例如对于:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><p id="p1">A <B>is a char</B>
</p></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>如果样式单写为如下形式:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><xsl:stylesheet version="1.0"
<BR>xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<BR><xsl:template match="p"> <BR>
<DIV><BR> <xsl:text> copy-of :
</xsl:text> <BR> <xsl:copy-of
select="."/> <BR> </DIV> <BR>
<DIV><BR> <xsl:text> copy :
</xsl:text> <BR> <xsl:copy/>
<BR> </DIV> <BR></xsl:template>
<BR></xsl:stylesheet></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>转换后生成如下代码:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><DIV> <BR> copy-of : <p id="p1">A
<B>is a char</B>
</p><BR></DIV><BR><DIV> <BR> copy :
<p/><BR></DIV></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>由此可见,两种拷贝方式结果大相径庭。
<OL start=9>
<LI type=disc value=8><STRONG>输出格式与编码问题</STRONG> </LI></OL>
<P>XSLT是一个转换语言,它的目的是将XML源文档转换为另一种格式文档,它的输出结果可以是HTML文档,也可以是带CSS的XML文档。具体的输出格式由xsl:output
指定。如果要输出为HTML文档,则写为:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><xsl:output
method="html"/></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>同样,要输出XML文档写为:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><xsl:output
method="xml"/></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>如果文档中不出现xsl:output,将缺省输出为XML文档,但如果在匹配模板时使用了<HTML>标记,则输出为HTML文档。输出为HTML文档时系统都会自动加上下面语句:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>此外,还可以利用xsl:output指定编码方式,如UTF-8,UTF-16,GB2312等。例如:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><xsl:output method="html"
encoding="GB2312"/></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>它指定了该XSLT的输出结果是HTML格式,编码方式为中文。</P></DIV>
<P></P>
<P></P></TD></TR></TBODY></TABLE>
</center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -