introduction to the syntax of xsl patterns.htm

来自「这是一本关于XML的学习的书」· HTM 代码 · 共 113 行

HTM
113
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0088)file://G:\application\XSL%20uguid\Creating%20and%20Populating%20an%20HTML%20Template.htm -->
<HTML><HEAD><TITLE>Introduction to the Syntax of XSL Patterns.htm</TITLE>
<META content="text/html; charset=gb_2312-80" http-equiv=Content-Type>
<STYLE type=text/css>.normal10 {
	FONT-SIZE: 11pt
}
.normal9 {
	FONT-SIZE: 9pt
}
A {
	TEXT-DECORATION: none
}
A:hover {
	COLOR: red; TEXT-DECORATION: underline
}
A {
	COLOR: cornflowerblue; FONT-FAMILY: "新细明体", "宋体"; FONT-SIZE: 11pt; FONT-WEIGHT: bold
}
.normal105 {
	FONT-SIZE: 11pt
}
.p {
	FONT-SIZE: 11pt
}
</STYLE>
<LINK href="level_2.files/Global.css" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/level_2.files/Global.css" rel=stylesheet>
<META content="MSHTML 5.00.2014.210" name=GENERATOR></HEAD>
<BODY>
<P align=center class=normal105>[<A href="file:///G:/default.asp" 
target=_parent>返回首页</A>][<FONT face=宋体 lang=ZH-CN><A 
href="file:///G:/application/application.htm" 
target=_parent>返回实践应用</A></FONT>]</P>
<TABLE align=center border=0 width="85%">
  <TBODY>
  <TR>
    <TD height=89 width="22%">&nbsp;</TD>
    <TD height=89 width="53%"> 
      <H2 align=center><font size="4">介绍Xsl模式语言的语法</font></H2>
    </TD>
    <TD height=89 width="25%"><A name=top></A></TD></TR>
  <TR>
    <TD colSpan=3 height=1301> 
      <P><SPAN class=normal10><BR>
        <SPAN class=normal105>下一篇: <a href="How XSL Defines the Context for XSL Pattern Queries.htm" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/How%20XSL%20Defines%20the%20Context%20for%20XSL%20Pattern%20Queries.htm"><span class="normal105">XSL如何定义XSL模式语言查询的上下文 
        </span></a><BR>
        返 回 : <a href="XSL Patterns.htm" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/XSL%20Patterns.htm">XSL模式语言 </a></SPAN></SPAN></P>
      <P><font size="2" class="normal105">XML文档是描述了一个节点的层次结构或者是一种树状结构,这类似于在文件系统中查找目录和文件的层次.这种相似是基于URLs和Xsl之间的语法相似.在下面的表格中比较了一些相似的属性.</font></P>
      <table class=clsStd>
        <tbody> 
        <tr> 
          <th><font size="2" class="normal105">File System (URLs)</font></th>
          <th><font size="2" class="normal105">XSL Patterns</font></th>
        </tr>
        <tr> 
          <td height="42"><font size="2" class="normal105">在文件系统中层次由目录和文件组成</font></td>
          <td height="42"><font size="2" class="normal105">在一个Xml文档里层次由元素和其他节点组成</font></td>
        </tr>
        <tr> 
          <td height="44"><font size="2" class="normal105">在每一层中文件都由一个唯一的名字.URLs总是能确定一个单独的文件</font></td>
          <td height="44"><font size="2" class="normal105">在每一层种元素名称不是唯一的 Xsl模式能鉴别所有的匹配元素的集合</font></td>
        </tr>
        <tr> 
          <td height="39"><font size="2" class="normal105">URLs是取值于相对于一种称为当前目录的特殊目录</font></td>
          <td height="39"><font size="2" class="normal105">XSL 模式取值于一种称为&quot;上下文&quot;特殊节点的</font></td>
        </tr>
        </tbody> 
      </table>
      <p><font size="2" class="normal105">下面的Xml数据描述了一个简单的层次结构,它能用于演示一些基本的Xsl模式的查询功能。</font></p>
      <pre class=clsCode><font size="2" face="Arial" class="normal105">&lt;authors&gt;
  &lt;author&gt;
    &lt;name&gt;Victor Hugo&lt;/name&gt;
    &lt;nationality&gt;French&lt;/nationality&gt;
  &lt;/author&gt;
  &lt;author period="classical"&gt;
    &lt;name&gt;Sophocles&lt;/name&gt;
    &lt;nationality&gt;Greek&lt;/nationality&gt;
  &lt;/author&gt;
  &lt;author&gt;
    &lt;name&gt;Leo Tolstoy&lt;/name&gt;
    &lt;nationality&gt;Russian&lt;/nationality&gt;
  &lt;/author&gt;
  &lt;author&gt;
    &lt;name&gt;Alexander Pushkin&lt;/name&gt;
    &lt;nationality&gt;Russian&lt;/nationality&gt;
  &lt;/author&gt;
  &lt;author period="classical"&gt;
    &lt;name&gt;Plato&lt;/name&gt;
    &lt;nationality&gt;Greek&lt;/nationality&gt;
  &lt;/author&gt;
&lt;/authors&gt;</font></pre>
      <p><font size="2"><span class="normal105">Xsl模式能使用任何Xml文档中的节点来作为一个查询的上下文。在Xsl样式表中一个查询的上下文是正在被<b>&lt;xsl:template&gt;</b> 
        或者 <b>&lt;xsl:for-each&gt;</b>元素当前处理的原节点。当直接从DOM中直接使用Xsl模式时候,你可以通过在一个特殊的节点上执行查询来定义上下文。关于更多的如何定义一个上下文的信息,参见<a href="How XSL Defines the Context for XSL Pattern Queries.htm" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/How%20XSL%20Defines%20the%20Context%20for%20XSL%20Pattern%20Queries.htm">Xsl如何定义Xsl模式语言查询的上下文</a> 
        和<a href="How the DOM Defines the Context for XSL Pattern Queries.htm" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/How%20the%20DOM%20Defines%20the%20Context%20for%20XSL%20Pattern%20Queries.htm">DOM如何定义Xsl模式语言查询的样式</a> 
        。本文中的样例使用了Xml文档根的上下文。</span></font></p>
      <p><span class="normal105"><font size="2"><span class="normal105">一个基本的Xsl模式描述了一条用斜线分开的,贯穿于Xml树的路径,直到所指的元素名。 
        </span></font></span></p>
      <pre class=clsCode><span class="normal105"><span class="normal105"><font color="#000000" face="Arial" size="2" class="normal105">authors/author/name</font></span></span></pre>
      <p><span class="normal105"><font size="2" class="normal105"> XSL Pattern 
        会使识别所有匹配这条路径的元素。由于Xsl总是有在一棵树上识别节点集的可能,因此它能被用于作为一个简单的查询机制</font></span></p>
      <p><span class="normal105"><font size="2" class="normal105">除了能沿着一个已知层次向下描述的路径,Xsl模式还能包括通配符用于描述未知的元素。任何名称的元素都能用“*”号描述。</font></span></p>
      <p><span class="normal105"><font face="Arial" size="2" class="normal105">authors/*/name</font></span></p>
      <p><span class="normal105"><font size="2"><span class="normal10"><span class="normal105"><span class="normal105">上面的查询也能识别所有的名称元素,但是不必要求“name“作为一个“author”元素的子元素。这里是用于查找“name”和“nationality”元素。</span></span></span></font></span></p>
      <pre class=clsCode><span class="normal105"><span class="normal105"><span class="normal10"><span class="normal105"><font size="2" face="Arial" class="normal105">authors/author/*</font></span></span></span></span></pre>
      <p><span class="normal105"><font size="2"><span class="normal105">在路径上的分支也能使用方括号指定。下面的查询描述在“author”元素上的一个分支,它指出了仅当带有“nationality“的“autthor”元素能被识别。</span></font></span></p>
      <pre class=clsCode><span class="normal105"><span class="normal105"><font size="2" face="Arial" class="normal105">authors/author[nationality]/name</font></span></span></pre>
      <p><span class="normal105"><font size="2" class="normal105">当比较关系被加入其中时这中查询对于我们的样例数据更为有用,下面的查询返回俄国作家的名称。注意比较关系只能包含在中括号中。</font></span></p>
      <pre class=clsCode><span class="normal105"><font size="2" face="Arial" class="normal105">authors/author[nationality='Russian']/name</font></span></pre>
      <p><span class="normal105"><font size="2" class="normal105">通过在属性名称前面加上“@”号方法来在一个查询中指定属性。测试属性能作为分叉主路径,或者查询识别属性节点的方法。下面的样例各自从classical 
        period中返回作者,结果是返回两个<span class="normal105">period属性。</span></font></span></p>
      <pre class=clsCode><span class="normal105"><span class="normal105"><font size="2" face="Arial" class="normal105">authors/author[@period="classical"]
authors/author/@period</font></span></span></pre>
      <p><span class="normal105"><font size="2" class="normal105">在Xsl模式中还有很多特性可以利用。支持Microsoft

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?