﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-我的IT之路</title><link>http://www.blogjava.net/zhiweili188/</link><description>人无志，终不能成大事。
学而不思则罔，思而不学则殆。</description><language>zh-cn</language><lastBuildDate>Thu, 30 Apr 2026 09:57:22 GMT</lastBuildDate><pubDate>Thu, 30 Apr 2026 09:57:22 GMT</pubDate><ttl>60</ttl><item><title>quartz简介</title><link>http://www.blogjava.net/zhiweili188/archive/2009/10/22/299435.html</link><dc:creator>脚踏实地</dc:creator><author>脚踏实地</author><pubDate>Thu, 22 Oct 2009 15:21:00 GMT</pubDate><guid>http://www.blogjava.net/zhiweili188/archive/2009/10/22/299435.html</guid><wfw:comment>http://www.blogjava.net/zhiweili188/comments/299435.html</wfw:comment><comments>http://www.blogjava.net/zhiweili188/archive/2009/10/22/299435.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhiweili188/comments/commentRss/299435.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhiweili188/services/trackbacks/299435.html</trackback:ping><description><![CDATA[<strong>Quartz特点：<br />
</strong>􀁺 Quartz能嵌入到任何独立的应用中运行。<br />
􀁺 Quartz能在应用服务器或者Servlet容器中实例化，并且能够参与XA事务。<br />
􀁺 Quartz能够以独立的方式运行（在它自己的Java虚拟机中），可以通过RMI使用Quartz。<br />
􀁺 Quartz可以被实例化为独立程序的集群（有负载均衡和容错能力）。<br />
<strong>Job Scheduling（任务日程安排）</strong><br />
任务在给定的触发器（Trigger）触发时执行。触发器可以通过几乎以下所有形式的组合方式进行创建：<br />
􀁺 在一天中的任意时刻（可以精确到毫秒）。<br />
􀁺 一周中特定的一些天。<br />
􀁺 一个月中特定的一些天。<br />
􀁺 一年中特定的一些天<br />
􀁺 不在日历列表中注册的一些天（比如节假日）。<br />
􀁺 循环特定的次数。<br />
􀁺 循环到特定的时间。<br />
􀁺 无限循环。<br />
􀁺 按照一定的时间间隔循环。<br />
<strong>Job Execution（任务执行）</strong><br />
&#8226; 任务是任何实现简单Job接口的Java 类，这样开发者能够执行任何完成他们工作的任务。<br />
&#8226; 任务类的实例可以由Quartz实例化，也可以由你的程序框架实例化。<br />
当触发器被触发时，日程管理器将会通知某个或者多个实现了JobListener 或TriggerListener的对象（监听器可以是简单的Java对象，或者EJBs,或者JMS消息发布器，等等）。这些监听器在任务执行完毕后也会接到通知。<br />
&#8226; 任务被完成后，他们会返回一个&#8220;任务完成码（JobCompletionCode）&#8221;，这个&#8220;任务完成码&#8221;告知日程管理器任务执行的结果是成功还是失败。日程管理器会根据成功或者失败码来采取措施，比如：立即重新执行任务。<br />
<strong>Job Persistence（任务持久化）</strong><br />
&#8226; Quartz设计中包括了一个JobStore接口，这样，实现这个接口的Job类可以以多种机制实现Job的存储。<br />
&#8226; 通过使用JDBCJobStore,所有的Jobs和Triggers被配置为&#8220;non-volatile&#8221;(不轻快)的方式。即，通过JDBC存储在关系数据库中。<br />
&#8226; 通过使用RAMJobStore，所有Jobs和Triggers被存储在RAM。因此，在程序执行中没有被持久化，但这种方式的优点就是不需要外部数据库。<br />
<strong>Transactions（事务）</strong><br />
&#8226; Quartz通过JobStoreCMT（JDBCJobStore的一个子类）可参与JTA事务。<br />
&#8226; Quartz可以管理JTA事务（开始或者提交事务）。<br />
<strong>Clustering（集群）</strong><br />
&#8226; Fail-over.（容错）<br />
&#8226; Load balancing.（负载均衡）<br />
<strong>Listeners &amp; Plug-Ins（监听器及插件）<br />
</strong>&#8226; 应用可以通过实现一个或者多个监听器接口来实现捕捉日程事件，以监视或控制任务/触发器的行为。<br />
&#8226; 可以通过插件的机制来扩展Quartz 的功能。例如:记录任务执行历史的日志，或者从文件中载入任务和触发器的定义。
<img src ="http://www.blogjava.net/zhiweili188/aggbug/299435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhiweili188/" target="_blank">脚踏实地</a> 2009-10-22 23:21 <a href="http://www.blogjava.net/zhiweili188/archive/2009/10/22/299435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xquery语法</title><link>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297390.html</link><dc:creator>脚踏实地</dc:creator><author>脚踏实地</author><pubDate>Wed, 07 Oct 2009 09:51:00 GMT</pubDate><guid>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297390.html</guid><wfw:comment>http://www.blogjava.net/zhiweili188/comments/297390.html</wfw:comment><comments>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297390.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhiweili188/comments/commentRss/297390.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhiweili188/services/trackbacks/297390.html</trackback:ping><description><![CDATA[<a title="xquery语法" href="http://www.w3school.com.cn/xquery/">xquery语法</a>
<img src ="http://www.blogjava.net/zhiweili188/aggbug/297390.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhiweili188/" target="_blank">脚踏实地</a> 2009-10-07 17:51 <a href="http://www.blogjava.net/zhiweili188/archive/2009/10/07/297390.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xquery语法学习（二）</title><link>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297388.html</link><dc:creator>脚踏实地</dc:creator><author>脚踏实地</author><pubDate>Wed, 07 Oct 2009 09:46:00 GMT</pubDate><guid>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297388.html</guid><wfw:comment>http://www.blogjava.net/zhiweili188/comments/297388.html</wfw:comment><comments>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297388.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhiweili188/comments/commentRss/297388.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhiweili188/services/trackbacks/297388.html</trackback:ping><description><![CDATA[&nbsp;
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">一些基本的语法规则：</span></p>
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span>&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>XQuery对大小写敏感 </span></p>
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span>&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>XQuery的元素、属性以及变量必须是合法的XML名称。 </span></p>
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span>&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>XQuery字符串值可使用单引号或双引号。 </span></p>
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span>&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>XQuery变量由&#8220;$&#8221;并跟随一个名称来进行定义，举例，$bookstore </span></p>
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span>&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>XQuery注释被(:和:)分割，举例，(: XQuery 注释 :) </span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 13.5pt; font-family: 宋体">XQuery </span></strong><strong><span style="font-size: 13.5pt; font-family: 宋体">条件表达式</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; font-family: 宋体">"If-Then-Else"</span></strong><strong><span style="font-size: 12pt; font-family: 宋体">可以在XQuery中使用。</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">请看下面的例子：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">for $x in doc("books.xml")/bookstore/book</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span>return if ($x/@category="CHILDREN")</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span>&nbsp;then &lt;child&gt;{data($x/title)}&lt;/child&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span>&nbsp;else &lt;adult&gt;{data($x/title)}&lt;/adult&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">请注意"If-Then-Else"的语法：if表达式后的圆括号是必需的。else也是必需的，不过仅仅写&#8220;else ()&#8221;也是可以的。</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">上面的例子的结果：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;adult&gt;Everyday Italian&lt;/adult&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;child&gt;Harry Potter&lt;/child&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;adult&gt;Learning XML&lt;/adult&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;adult&gt;XQuery Kick Start&lt;/adult&gt;</span></p>
<br />
&nbsp;
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; mso-outline-level: 3; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span lang="EN-US" style="font-size: 13.5pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">XQuery </span></strong><strong><span style="font-size: 13.5pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">比较<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal" style="mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">在<span lang="EN-US">XQuery</span>中，有两种方法来比较值。<br />
<span lang="EN-US"><o:p>&nbsp; </p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; mso-list: l0 level1 lfo1"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><span style="mso-list: Ignore">1.<span style="font: 7pt 'Times New Roman'">&nbsp; </span></span></span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">通用比较：<span lang="EN-US">=, !=, &lt;, &lt;=, &gt;, &gt;= <o:p></o:p></span></span></p>
&nbsp;
<p style="margin-left: 36pt; text-indent: -18pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">2.&nbsp;</span><span style="font-size: 12pt; font-family: 宋体">值的比较：eq、ne、lt、le、gt、ge </span></p>
&nbsp;
<p class="MsoNormal" style="mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">请看下面的<span lang="EN-US">XQuery</span>表达式：<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span>$bookstore//book/@q &gt; 10</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">如果<span lang="EN-US">q</span>属性的值大于<span lang="EN-US">10</span>，上面的表达式的返回值为<span lang="EN-US">true</span>。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span>$bookstore//book/@q gt 10</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">如果仅返回一个<span lang="EN-US">q</span>，且它的值大于<span lang="EN-US">10</span>，那么表达式返回<span lang="EN-US">true</span>。如果不止一个<span lang="EN-US">q</span>被返回，则会发生错误。<span lang="EN-US"><o:p></o:p></span></span></p>
&nbsp;
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 13.5pt; font-family: 宋体">向结果添加元素和属性</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">正如在前面一节看到的，我们可以在结果中引用输入文件中的元素和属性：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">for $x in doc("books.xml")/bookstore/book/title</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">order by $x</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">return $x</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">上面的XQuery表达式会在结果中引用title元素和lang属性，就像这样： </span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;Everyday Italian&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;Harry Potter&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;Learning XML&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;XQuery Kick Start&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">以上XQuery表达式返回title元素的方式和它们在输入文档中被描述的方式的相同的。</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">现在我们要向结果添加我们自己的元素和属性！</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; font-family: 宋体">添加HTML元素和文本</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">现在，我们要向结果添加HTML元素。我们会把结果放在一个HTML列表中 - Now, we want to add some HTML elements to the result. We will put the result in an HTML list - together with some text:</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;html&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;body&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;h1&gt;Bookstore&lt;/h1&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;ul&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">{</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">for $x in doc("books.xml")/bookstore/book</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">order by $x/title</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="color: #000000"><span>return &lt;li&gt;{data($x/title)}. Category: {data<span style="color: #000000">(<a href="mailto:$x/@category)%7d%3c/li%3e%7d%3c/ul%3e%3c/body%3e%3c/html">$x/@category)}&lt;/li&gt;</a>&gt;</span></span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">}</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;/ul&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;/body&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;/html</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="color: #000000"><span>以上XQuery表达式会生成下面的结果：&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;html&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;body&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;h1&gt;Bookstore&lt;/h1&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;ul&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;li&gt;Everyday Italian. Category: COOKING&lt;/li&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;li&gt;Harry Potter. Category: CHILDREN&lt;/li&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;li&gt;Learning XML. Category: WEB&lt;/li&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;li&gt;XQuery Kick Start. Category: WEB&lt;/li&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;/ul&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;/body&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;/html&gt;</span></span></p>
&nbsp;
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 13.5pt; font-family: 宋体">选择和过滤元素</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">正如在前面的章节看到的，我们使用路径表达式或FLWOR表达式来选去和过滤元素。</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">请看下面的FLWOR表达式：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">for $x in doc("books.xml")/bookstore/book</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">where $x/price&gt;30</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">order by $x/title</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">return $x/title</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">for </span></p>
<p style="margin-left: 36pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">（可选） 向每个由in表达式返回的项目捆绑一个变量</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">let </span></p>
<p style="margin-left: 36pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">（可选）</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">where </span></p>
<p style="margin-left: 36pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">（可选） 设定一个条件</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">order by </span></p>
<p style="margin-left: 36pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">（可选） 设定结果的排列顺序</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">return </span></p>
<p style="margin-left: 36pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">规定在结果中返回的内容 </span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; font-family: 宋体">for </span></strong><strong><span style="font-size: 12pt; font-family: 宋体">语句</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">for</span><span style="font-size: 12pt; font-family: 宋体">语句可将变量捆绑到由in表达式返回的每个项目。for可产生迭代。在同一个FLWOR表达式中可存在多重for语句。</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">如需在一个for语句中循环指定的次数，您可使用<em>关键词to</em>： &nbsp;&nbsp;&nbsp;&nbsp;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">for $x in (1 to 5)</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">return &lt;test&gt;{$x}&lt;/test&gt;</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">结果：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;test&gt;1&lt;/test&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;test&gt;2&lt;/test&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;test&gt;3&lt;/test&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;test&gt;4&lt;/test&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;test&gt;5&lt;/test&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><em><span style="font-size: 12pt; font-family: 宋体">关键词at</span></em><span style="font-size: 12pt; font-family: 宋体">可被用来计算迭代：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">for $x at $i in doc("books.xml")/bookstore/book/title</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">return &lt;book&gt;{$i}. {data($x)}&lt;/book&gt;</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">结果：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;book&gt;1. Everyday Italian&lt;/book&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;book&gt;2. Harry Potter&lt;/book&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;book&gt;3. XQuery Kick Start&lt;/book&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;book&gt;4. Learning XML&lt;/book&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">在for语句中同样<em>允许多个in表达式</em>。请使用逗号来分割每一个in表达式：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">for $x in (10,20), $y in (100,200)</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">return &lt;test&gt;x={$x} and y={$y}&lt;/test&gt;</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">结果：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;test&gt;x=10 and y=100&lt;/test&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;test&gt;x=10 and y=200&lt;/test&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;test&gt;x=20 and y=100&lt;/test&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;test&gt;x=20 and y=200&lt;/test&gt;</span></p>
&nbsp;
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; font-family: 宋体">let </span></strong><strong><span style="font-size: 12pt; font-family: 宋体">语句</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">let</span><span style="font-size: 12pt; font-family: 宋体">语句可完成变量分配，并可避免多次重复相同的表达式。let语句不回导致迭代。</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">let $x := (1 to 5)</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">return &lt;test&gt;{$x}&lt;/test&gt;</span></strong><span style="font-size: 12pt; font-family: 宋体">&nbsp;&nbsp;&nbsp; </span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">结果&nbsp;&nbsp;&nbsp; </span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;test&gt;1 2 3 4 5&lt;/test&gt;&nbsp;&nbsp;&nbsp; </span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; font-family: 宋体">where </span></strong><strong><span style="font-size: 12pt; font-family: 宋体">语句</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">where</span><span style="font-size: 12pt; font-family: 宋体">语句用于为结果设定一个或多个条件（criteria）。</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">where $x/price&gt;30 and $x/price&lt;100</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; font-family: 宋体">order by </span></strong><strong><span style="font-size: 12pt; font-family: 宋体">语句</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">order by</span><span style="font-size: 12pt; font-family: 宋体">语句用于规定结果的排序次序。此处，我们要根据category和title来对结果进行排序：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">for $x in doc("books.xml")/bookstore/book</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">order by $x/@category, $x/title</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">return $x/title</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">结果：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;Harry Potter&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;Everyday Italian&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;Learning XML&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;XQuery Kick Start&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; font-family: 宋体">return </span></strong><strong><span style="font-size: 12pt; font-family: 宋体">语句：</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">return</span><span style="font-size: 12pt; font-family: 宋体">语句规定要返回的内容。</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">for $x in doc("books.xml")/bookstore/book</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><span style="font-size: 12pt; color: red; font-family: 宋体">return $x/title</span></strong></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">结果：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;Everyday Italian&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;Harry Potter&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;XQuery Kick Start&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;Learning XML&lt;/title&gt;</span></p>
</o:p></span></span>
<img src ="http://www.blogjava.net/zhiweili188/aggbug/297388.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhiweili188/" target="_blank">脚踏实地</a> 2009-10-07 17:46 <a href="http://www.blogjava.net/zhiweili188/archive/2009/10/07/297388.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xquery的语法简介（一）</title><link>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297386.html</link><dc:creator>脚踏实地</dc:creator><author>脚踏实地</author><pubDate>Wed, 07 Oct 2009 09:26:00 GMT</pubDate><guid>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297386.html</guid><wfw:comment>http://www.blogjava.net/zhiweili188/comments/297386.html</wfw:comment><comments>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297386.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhiweili188/comments/commentRss/297386.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhiweili188/services/trackbacks/297386.html</trackback:ping><description><![CDATA[&nbsp;
<p><span style="font-size: 12pt; font-family: 宋体">在介绍语法的时候，例子中使用的XML文档是</span><strong><span style="font-size: 12pt; font-family: 宋体">"books.xml":</span></strong></p>
<p><strong><span style="font-size: 12pt; font-family: 宋体">&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;<br />
&lt;bookstore&gt;<br />
&lt;book category="COOKING"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title lang="en"&gt;Everyday Italian&lt;/title&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;author&gt;Giada De Laurentiis&lt;/author&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;year&gt;2005&lt;/year&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;price&gt;30.00&lt;/price&gt;<br />
&lt;/book&gt;<br />
<br />
&lt;book category="CHILDREN"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title lang="en"&gt;Harry Potter&lt;/title&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;author&gt;J K. Rowling&lt;/author&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;year&gt;2005&lt;/year&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;price&gt;29.99&lt;/price&gt;<br />
&lt;/book&gt;<br />
&lt;book category="WEB"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title lang="en"&gt;XQuery Kick Start&lt;/title&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;author&gt;James McGovern&lt;/author&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;author&gt;Per Bothner&lt;/author&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;author&gt;Kurt Cagle&lt;/author&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;author&gt;James Linn&lt;/author&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;author&gt;Vaidyanathan Nagarajan&lt;/author&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;year&gt;2003&lt;/year&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;price&gt;49.99&lt;/price&gt;<br />
&lt;/book&gt;<br />
&lt;book category="WEB"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title lang="en"&gt;Learning XML&lt;/title&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;author&gt;Erik T. Ray&lt;/author&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;year&gt;2003&lt;/year&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;price&gt;39.95&lt;/price&gt;<br />
&lt;/book&gt;<br />
&lt;/bookstore&gt;</span></strong></p>
<br />
&nbsp;
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan">&nbsp; </p>
<p><strong><span style="font-size: 13.5pt; font-family: 宋体">一、函数</span></strong></p>
<p><span style="font-size: 12pt; font-family: 宋体">XQuery</span><span style="font-size: 12pt; font-family: 宋体">使用函数来提取XML文档中的数据。</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">doc()</span><span style="font-size: 12pt; font-family: 宋体">用于打开"books.xml"文件：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><u><span style="font-size: 12pt; color: #000000; font-family: 宋体">doc("books.xml")<br />
</span></u></strong></p>
<p><strong><span style="font-size: 12pt; font-family: 宋体"><br />
二、路径表达式</span></strong></p>
<p><span style="font-size: 12pt; font-family: 宋体">XQuery</span><span style="font-size: 12pt; font-family: 宋体">使用路径表达式在XML文档中通过元素进行导航。</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">下面的路径表达式用于在"books.xml"文件中选取所有的title元素：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><u><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000"><strong><u><span style="font-size: 12pt; font-family: 宋体">doc("books.xml")</span></u></strong><strong><u><span style="font-size: 12pt; font-family: 宋体">/bookstore/book/title</span></u></strong></span></span></u></strong></p>
<p><span style="font-size: 12pt; font-family: 宋体">(/bookstore</span><span style="font-size: 12pt; font-family: 宋体">选取bookstore元素，/book选取bookstore元素下的所有book元素，而/title选取每个book元素下的所有title元素)</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">上面的XQuery可提取以下数据：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;Everyday Italian&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;Harry Potter&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;XQuery Kick Start&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;title lang="en"&gt;Learning XML&lt;/title&gt;</span></p>
<p><strong><span style="font-size: 12pt; font-family: 宋体">三、谓语</span></strong></p>
<p><span style="font-size: 12pt; font-family: 宋体">XQuery</span><span style="font-size: 12pt; font-family: 宋体">使用谓语来限定从XML文档所提取的数据。</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">下面的谓语用于选取bookstore元素下的所有book元素，并且所选取的book元素下的price元素的值必须小于30：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><strong><u><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000"><strong><u><span style="font-size: 12pt; font-family: 宋体">doc("books.xml")/bookstore/book</span></u></strong><strong><u><span style="font-size: 12pt; font-family: 宋体">[price&lt;30]</span></u></strong></span></span></u></strong></p>
<p><span style="font-size: 12pt; font-family: 宋体">上面的XQuery可提取到下面的数据：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;book category="CHILDREN"&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title lang="en"&gt;Harry Potter&lt;/title&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;author&gt;J K. Rowling&lt;/author&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;year&gt;2005&lt;/year&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;price&gt;29.99&lt;/price&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;/book&gt;</span></p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"><strong><u></u></strong><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p>四、<span style="font-size: 13.5pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><strong>使用<span lang="EN-US">FLWOR</span>从<span lang="EN-US">"books.xml"</span>选取节点<br />
&nbsp; </strong></p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"><span>FLWOR是<span lang="EN-US">"For, Let, Where, Order by, Return"</span>的只取首字母缩写。</span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"><em><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">for</span></em><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">语句把<span lang="EN-US">bookstore</span>元素下的所有<span lang="EN-US">book</span>元素提取到名为<span lang="EN-US">$x</span>的变量中。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"><em><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">where</span></em><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">语句选取了<span lang="EN-US">price</span>元素值大于<span lang="EN-US">30</span>的<span lang="EN-US">book</span>元素。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"><em><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">order by</span></em><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">语句定义了排序次序。将根据<span lang="EN-US">title</span>元素进行排序。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"><em><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">return</span></em><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">语句规定返回什么内容。在此返回的是<span lang="EN-US">title</span>元素。<br />
<span lang="EN-US"><o:p><br />
&nbsp; </p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">请看下面这个路径表达式：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000"><strong><u>doc("books.xml")/bookstore/book[price&gt;30]/title</u></strong></span></span></p>
<p><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">上面这个表达式可选取bookstore元素下的book元素下所有的title元素，并且其中的price元素的值必须大于30。</span></span></p>
<p><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">下面这个FLWOR表达式所选取的数据和上面的路径表达式是相同的：</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">for $x in doc("books.xml")/bookstore/book</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">where $x/price&gt;30</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">return $x/title</span></span></p>
<p><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">结果是：</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;title lang="en"&gt;XQuery Kick Start&lt;/title&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">&lt;title lang="en"&gt;Learning XML&lt;/title&gt;</span></span></p>
<p><span style="font-size: 12pt; font-family: 宋体"><span style="color: #000000">通过FLWOR，您可以对结果进行排序：</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">for $x in doc("books.xml")/bookstore/book</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">where $x/price&gt;30</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">order by $x/title</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000"><u>return $x/title<br />
<br />
<br />
</p>
<p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan"><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">上面的<span lang="EN-US">XQuery</span>表达式的结果：<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&lt;title lang="en"&gt;Learning XML&lt;/title&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&lt;title lang="en"&gt;XQuery Kick Start&lt;/title&gt;<o:p></o:p></span></p>
<br />
<br />
<p><strong><span style="font-size: 13.5pt; font-family: 宋体">在一个HTML列表中提交结果</span></strong></p>
<p><span style="font-size: 12pt; font-family: 宋体">请看下面的XQuery FLWOR表达式：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">for $x in doc("books.xml")/bookstore/book/title</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">order by $x</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000"><em>return $x</em></span></span></p>
<p><span style="font-size: 12pt; font-family: 宋体">上面的表达式会选取bookstore元素下的book元素下的所有title元素，并以字母顺序返回title元素。</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">现在，我们希望使用HTML列表列出我们的书店中所有的书目。我们向FLWOR表达式添加&lt;ul&gt;和&lt;li&gt;标签：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">&lt;ul&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">{</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">for $x in doc("books.xml")/bookstore/book/title</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">order by $x</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span><span style="color: #000000">return &lt;li&gt;{$x}&lt;/li&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">}</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">&lt;/ul&gt;</span></span></p>
<p><span style="font-size: 12pt; font-family: 宋体">以上代码的结果：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;ul&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;li&gt;&lt;title lang="en"&gt;Everyday Italian&lt;/title&gt;&lt;/li&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;li&gt;&lt;title lang="en"&gt;Harry Potter&lt;/title&gt;&lt;/li&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;li&gt;&lt;title lang="en"&gt;Learning XML&lt;/title&gt;&lt;/li&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;li&gt;&lt;title lang="en"&gt;XQuery Kick Start&lt;/title&gt;&lt;/li&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;/ul&gt;</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">现在我们希望去除title元素，而仅仅显示title元素内的数据。</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">&lt;ul&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">{</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">for $x in doc("books.xml")/bookstore/book/title</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">order by $x</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="color: #000000"><span>return &lt;li&gt;{data($x)}&lt;/li&gt;</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">}</span></span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; color: red; font-family: 宋体"><span style="color: #000000">&lt;/ul&gt;</span></span></p>
<p><span style="font-size: 12pt; font-family: 宋体">结果将是一个HTML列表：</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;ul&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;li&gt;Everyday Italian&lt;/li&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;li&gt;Harry Potter&lt;/li&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;li&gt;Learning XML&lt;/li&gt;</span></p>
<p style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt"><span style="font-size: 12pt; font-family: 宋体">&lt;li&gt;XQuery Kick Start&lt;/li&gt;</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">&lt;/ul&gt;</span></p>
</u></span></span></o:p></span></span></span></o:p></span>
<img src ="http://www.blogjava.net/zhiweili188/aggbug/297386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhiweili188/" target="_blank">脚踏实地</a> 2009-10-07 17:26 <a href="http://www.blogjava.net/zhiweili188/archive/2009/10/07/297386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第一个在java中使用xquery的例子</title><link>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297383.html</link><dc:creator>脚踏实地</dc:creator><author>脚踏实地</author><pubDate>Wed, 07 Oct 2009 09:14:00 GMT</pubDate><guid>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297383.html</guid><wfw:comment>http://www.blogjava.net/zhiweili188/comments/297383.html</wfw:comment><comments>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297383.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhiweili188/comments/commentRss/297383.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhiweili188/services/trackbacks/297383.html</trackback:ping><description><![CDATA[<br />
一、使用eclipse新建一个java project<br />
二、把saxon的jar包放入classpath（我用的jar包是saxon9ee.jar）<br />
三、新建package，然后新建一个xml文件（cd_catalog.xml）,其内容如下：<br />
&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;CATALOG&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;TITLE&gt;Empire Burlesque&lt;/TITLE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ARTIST&gt;Bob Dylan&lt;/ARTIST&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COUNTRY&gt;USA&lt;/COUNTRY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COMPANY&gt;Columbia&lt;/COMPANY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;PRICE&gt;10.90&lt;/PRICE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;YEAR&gt;1985&lt;/YEAR&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;TITLE&gt;Hide your heart&lt;/TITLE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ARTIST&gt;Bonnie Tyler&lt;/ARTIST&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COUNTRY&gt;UK&lt;/COUNTRY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COMPANY&gt;CBS Records&lt;/COMPANY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;PRICE&gt;9.90&lt;/PRICE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;YEAR&gt;1988&lt;/YEAR&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;TITLE&gt;Greatest Hits&lt;/TITLE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ARTIST&gt;Dolly Parton&lt;/ARTIST&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COUNTRY&gt;USA&lt;/COUNTRY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COMPANY&gt;RCA&lt;/COMPANY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;PRICE&gt;9.90&lt;/PRICE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;YEAR&gt;1982&lt;/YEAR&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;TITLE&gt;Still got the blues&lt;/TITLE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ARTIST&gt;Gary Moore&lt;/ARTIST&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COUNTRY&gt;UK&lt;/COUNTRY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COMPANY&gt;Virgin records&lt;/COMPANY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;PRICE&gt;10.20&lt;/PRICE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;YEAR&gt;1990&lt;/YEAR&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;TITLE&gt;Eros&lt;/TITLE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ARTIST&gt;Eros Ramazzotti&lt;/ARTIST&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COUNTRY&gt;EU&lt;/COUNTRY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COMPANY&gt;BMG&lt;/COMPANY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;PRICE&gt;9.90&lt;/PRICE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;YEAR&gt;1997&lt;/YEAR&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;TITLE&gt;One night only&lt;/TITLE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ARTIST&gt;Bee Gees&lt;/ARTIST&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COUNTRY&gt;UK&lt;/COUNTRY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COMPANY&gt;Polydor&lt;/COMPANY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;PRICE&gt;10.90&lt;/PRICE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;YEAR&gt;1998&lt;/YEAR&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;TITLE&gt;Sylvias Mother&lt;/TITLE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ARTIST&gt;Dr.Hook&lt;/ARTIST&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COUNTRY&gt;UK&lt;/COUNTRY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COMPANY&gt;CBS&lt;/COMPANY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;PRICE&gt;8.10&lt;/PRICE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;YEAR&gt;1973&lt;/YEAR&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;TITLE&gt;Maggie May&lt;/TITLE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ARTIST&gt;Rod Stewart&lt;/ARTIST&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COUNTRY&gt;UK&lt;/COUNTRY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COMPANY&gt;Pickwick&lt;/COMPANY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;PRICE&gt;8.50&lt;/PRICE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;YEAR&gt;1990&lt;/YEAR&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;TITLE&gt;Romanza&lt;/TITLE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ARTIST&gt;Andrea Bocelli&lt;/ARTIST&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COUNTRY&gt;EU&lt;/COUNTRY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COMPANY&gt;Polydor&lt;/COMPANY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;PRICE&gt;10.80&lt;/PRICE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;YEAR&gt;1996&lt;/YEAR&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;CD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;TITLE&gt;When a man loves a woman&lt;/TITLE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ARTIST&gt;Percy Sledge&lt;/ARTIST&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COUNTRY&gt;USA&lt;/COUNTRY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;COMPANY&gt;Atlantic&lt;/COMPANY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;PRICE&gt;8.70&lt;/PRICE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;YEAR&gt;1987&lt;/YEAR&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/CD&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/CATALOG&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
四、新建一个java class（XqueryTest.java）
<p>import java.io.IOException;<br />
import java.util.Properties;</p>
<p>import javax.xml.parsers.DocumentBuilder;<br />
import javax.xml.parsers.DocumentBuilderFactory;<br />
import javax.xml.parsers.ParserConfigurationException;<br />
import javax.xml.transform.OutputKeys;<br />
import javax.xml.transform.Transformer;<br />
import javax.xml.transform.TransformerConfigurationException;<br />
import javax.xml.transform.TransformerException;<br />
import javax.xml.transform.TransformerFactory;<br />
import javax.xml.transform.dom.DOMSource;<br />
import javax.xml.transform.stream.StreamResult;</p>
<p>import org.w3c.dom.Document;<br />
import org.xml.sax.SAXException;</p>
<p>import net.sf.saxon.Configuration;<br />
import net.sf.saxon.dom.*;<br />
import net.sf.saxon.query.DynamicQueryContext;<br />
import net.sf.saxon.query.StaticQueryContext;<br />
import net.sf.saxon.query.XQueryExpression;<br />
import net.sf.saxon.trans.XPathException;</p>
<p>public class XqueryTest {<br />
&nbsp;/**<br />
&nbsp; * 执行查询<br />
&nbsp; */<br />
&nbsp;public static void select(){<br />
&nbsp;&nbsp;//文件<br />
&nbsp;&nbsp;String fileString = "src/study/xquery/cd_catalog.xml";<br />
&nbsp;&nbsp;//查询语句<br />
&nbsp;&nbsp;String query = " for $s in //CD/TITLE "<br />
&nbsp;&nbsp;&nbsp;&nbsp;+ " return $s";<br />
&nbsp;&nbsp;//生产文档对象<br />
&nbsp;&nbsp;Document document = getDocument(fileString);<br />
&nbsp;&nbsp;Configuration configuration = new Configuration();<br />
&nbsp;&nbsp;StaticQueryContext context = new StaticQueryContext(configuration, false);<br />
&nbsp;&nbsp;//查询表达式对象<br />
&nbsp;&nbsp;XQueryExpression expression = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;expression = context.compileQuery(query);<br />
&nbsp;&nbsp;&nbsp;DynamicQueryContext context2 = new DynamicQueryContext(configuration);<br />
&nbsp;&nbsp;&nbsp;context2.setContextItem(new DocumentWrapper(document,null,configuration));<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;final Properties props = new Properties();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.setProperty(OutputKeys.METHOD, "xml");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.setProperty(OutputKeys.INDENT, "yes");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //执行查询，并输出查询结果<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; expression.run(context2, new StreamResult(System.out), props);<br />
&nbsp;&nbsp;} catch (XPathException e) {<br />
&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<br />
&nbsp;}<br />
&nbsp;/**<br />
&nbsp; * 生产文档对象<br />
&nbsp; * <br />
&nbsp; * @param xml&nbsp;&nbsp; 文件名<br />
&nbsp; * @return<br />
&nbsp; */<br />
&nbsp;public static Document getDocument(String xml){<br />
&nbsp;&nbsp;DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();<br />
&nbsp;&nbsp;DocumentBuilder builder;<br />
&nbsp;&nbsp;Document document = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;builder = builderFactory.newDocumentBuilder();<br />
&nbsp;&nbsp;&nbsp;document = builder.parse(xml);<br />
&nbsp;&nbsp;} catch (ParserConfigurationException e) {<br />
&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;} catch (SAXException e) {<br />
&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;} catch (IOException e) {<br />
&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;document.normalize();<br />
&nbsp;&nbsp;return document;<br />
&nbsp;}<br />
&nbsp;/**<br />
&nbsp; * 输入生成的文档内容<br />
&nbsp; * <br />
&nbsp; * @param doc<br />
&nbsp; */<br />
&nbsp;public static void output(Document doc){<br />
&nbsp;&nbsp;TransformerFactory factory = TransformerFactory.newInstance();<br />
&nbsp;&nbsp;Transformer transformer = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;transformer = factory.newTransformer();<br />
&nbsp;&nbsp;&nbsp;Properties properties = transformer.getOutputProperties();<br />
&nbsp;&nbsp;&nbsp;properties.setProperty(OutputKeys.INDENT, "yes");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; properties.setProperty(OutputKeys.ENCODING, "GB2312");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; properties.setProperty(OutputKeys.METHOD, "xml");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; properties.setProperty(OutputKeys.VERSION, "1.0");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transformer.setOutputProperties(properties);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOMSource source = new DOMSource(doc);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StreamResult result = new StreamResult(System.out);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transformer.transform(source, result);<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;} catch (TransformerConfigurationException e) {<br />
&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;} catch (TransformerException e) {<br />
&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp;select();<br />
&nbsp;}<br />
}<br />
</p>
<br />
五、运行结果<br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;TITLE&gt;Empire Burlesque&lt;/TITLE&gt;<br />
&lt;TITLE&gt;Hide your heart&lt;/TITLE&gt;<br />
&lt;TITLE&gt;Greatest Hits&lt;/TITLE&gt;<br />
&lt;TITLE&gt;Still got the blues&lt;/TITLE&gt;<br />
&lt;TITLE&gt;Eros&lt;/TITLE&gt;<br />
&lt;TITLE&gt;One night only&lt;/TITLE&gt;<br />
&lt;TITLE&gt;Sylvias Mother&lt;/TITLE&gt;<br />
&lt;TITLE&gt;Maggie May&lt;/TITLE&gt;<br />
&lt;TITLE&gt;Romanza&lt;/TITLE&gt;<br />
&lt;TITLE&gt;When a man loves a woman&lt;/TITLE&gt;
<img src ="http://www.blogjava.net/zhiweili188/aggbug/297383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhiweili188/" target="_blank">脚踏实地</a> 2009-10-07 17:14 <a href="http://www.blogjava.net/zhiweili188/archive/2009/10/07/297383.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xquery运行环境</title><link>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297372.html</link><dc:creator>脚踏实地</dc:creator><author>脚踏实地</author><pubDate>Wed, 07 Oct 2009 08:55:00 GMT</pubDate><guid>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297372.html</guid><wfw:comment>http://www.blogjava.net/zhiweili188/comments/297372.html</wfw:comment><comments>http://www.blogjava.net/zhiweili188/archive/2009/10/07/297372.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhiweili188/comments/commentRss/297372.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhiweili188/services/trackbacks/297372.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要使用xquery进行查询，需要一个xquery的处理器，在此我们使用saxon处理器。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Saxon是一个内存处理器。无论使用XSLT还是XQuery，Saxon被设计来处理在内存中装配好的源。</p>
&nbsp;&nbsp;&nbsp;&nbsp;用法：<br />
&nbsp;&nbsp;&nbsp;&nbsp;1.下载saxon压缩包<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://saxon.sourceforge.net/&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;只需要里面的jar包<br />
&nbsp;&nbsp;&nbsp;&nbsp;2.jdk1.4以上即可
<img src ="http://www.blogjava.net/zhiweili188/aggbug/297372.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhiweili188/" target="_blank">脚踏实地</a> 2009-10-07 16:55 <a href="http://www.blogjava.net/zhiweili188/archive/2009/10/07/297372.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>