??xml version="1.0" encoding="utf-8" standalone="yes"?>韩国三级中文字幕hd久久精品,久久伊人中文无码,亚洲va中文字幕无码久久http://www.shnenglu.com/ispfcn/category/1305.htmlzh-cnSat, 24 May 2008 20:54:47 GMTSat, 24 May 2008 20:54:47 GMT60在PHP中实现进E间通讯http://www.shnenglu.com/ispfcn/archive/2008/04/18/47518.html~程之道~程之道Fri, 18 Apr 2008 09:26:00 GMThttp://www.shnenglu.com/ispfcn/archive/2008/04/18/47518.htmlhttp://www.shnenglu.com/ispfcn/comments/47518.htmlhttp://www.shnenglu.com/ispfcn/archive/2008/04/18/47518.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/47518.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/47518.html  本文讨论在PHP4环境下如何用进E间通讯机制——IPC(Inter-Process-Communication)。本文讨论的软g环境是Linux+php4.0.4或更高版本。首?我们假设你已l装好了PHP4和UNIX, Z使得php4可以使用׃n内存和信号量Q必d~译php4E序时激zshmop和sysvsemq两个扩展模块?

  实现ҎQ在PHP讑֮(configure)时加入如下选项?

 --enable-shmop --enable-sysvsem  

 

  q样׃得你的PHPpȝ可以处理相关的IPC函数了?

  IPC是什么?

  IPC (Inter-process communication) 是一个Unix标准通讯机制Q它提供了得在同一CZ同进E之间可以互盔R讯的方法。基本的IPC处理机制?U:它们分别是共享内存、信号量和消息队列。本文中我们主要讨论׃n内存和信号量的用。关于消息队列,W者在不久的将来还会专门介l?

  在PHP中用共享内存段

  在不同的处理q程之间使用׃n内存是一个实C同进E之间相互通讯的好Ҏ。如果你在一个进E中向所׃n的内存写入一D信息,那么所有其他的q程也可以看到这D被写入的数据。非常方ѝ在PHP中有了共享内存的帮助Q你可以实现不同q程在运行同一DPHP脚本时返回不同的l果。或实现对PHP同时q行数量的实时查询等{?

  ׃n内存允许两个或者多个进E共享一l定的存储区。因为数据不需要在客户机和服务器之间复Ӟ所以这是最快的一UIPC。用共享内存的唯一H门是多个进E对一l定存储区的同步存取?

  如何建立一个共享内存段呢?下面的代码可以帮你徏立共享内存?nbsp;
      

$shm_id = shmop_open($key, $mode, $perm, $size); 

 

  注意Q每个共享内存段都有一个唯一的ID, 在PHP中,shmop_open会把建立好的׃n内存D늚IDq回Q这里我们用$shm_id记录它。?key是一个我们逻辑上表C共享内存段的Key倹{不同进E只要选择同一个Key id可以共享同一D存储段。习惯上我们用一个串Q类似文件名一L东西Q的散列g为key id. $mode指明了共享内存段的用方式。这里由于是新徏Q因此gؓ’c’ –取create之意。如果你是访问已l徏立过的共享内存那么请?#8217;a’,-- 取Access之意?perm参数定义了访问的权限Q?q制Q关于权限定义请看UNIX文gpȝ帮助?size定义了共享内存的大小。尽有点象fopen(文g处理)你可不要当它同文件处理一栗后面的描述你将看到着一炏V?

  例如Q?

$shm_id = shmop_open(0xff3, "c", 0644, 100); 


  q里我们打开了一个共享内存段 键?xff3 –rw-r—r—格式,大小?00字节?

  如果需要访问已有的׃n内存D,你必d调用shmop_open中设W??个参Cؓ0?

  IPC工作状态的查询

  在Unix下,你可以用一个命令行E序ipcs查询pȝ所有的IPC资源状态。不q有些系l要求需要超U用h能执行。下图是一Dipcs的运行结果?/p>

 
  上图中系l显CZ4个共享内存段Q注意其中第4个键gؓ0x00000ff3的就是我们刚刚运行过的PHPE序所创徏的。关于ipcs的用法请参考UNIX用户手册?

  如何释放׃n内存?

  释放׃n内存的办法是调用PHP指o:shmop_delete($id)

 

shmop_delete($id); 

 

  $id 是你调用shmop_open所存的shmop_op的返回倹{还有一个办法就是用UNIX的管理指?

  ipcrm id, id是你用ipcs看到的ID.和你E序中的$id不一栗不q要心Q如果你用ipcrm直接删除׃n内存D那么有可能D其他不知道这一情况的进E在引用q个已经不复存在的共享内存器时出C些不可预的错误(往往l果不妙)?

  如何使用(d)׃n内存?

  使用如下所C函数向׃n内存写入数据

 

int shmop_write (int shmid, string data, int offset) 

 

  其中shmid是用shmop_openq回的句柄?Data变量存放了要存放的数据?offset描述了写入从׃n内存的开始第一个字节的位置Q以0开始)?

  d操作是:

 

string shmop_read (int shmid, int start, int count

 

  同样Q指?shmid,开始偏U量Q以0开始)、总读取数量。返回结果串。这P你就可以把共享内存段当作是一个字节数l。读几个再写几个Q想q嘛干嘛,十分方便?

  多进E问题的考虑

  现在Q在单独的一个PHPq程中读写、创建、删除共享内存方面上你应该没有问题了。但是,昄实际q行中不可能只是一个PHPq程在运行中。如果在多个q程的情况下你还是沿用单个进E的处理ҎQ你一定会到问题 ---- 著名的ƈ行和互斥问题。比如说?个进E同旉要对同一D内存进行读写。当两个q程同时执行写入操作Ӟ你将得到一个错误的数据Q因D内存将之可能是最后执行的q程的内容,甚至是由2个进E写入的数据轮流随机出现的一D|؜合的四不象。这昄是不能接受的。ؓ了解册个问题,我们必须引入互斥机制。互斥机制在很多操作pȝ的教材上都有专门讲述Q这里不多重复。实C斥机制的最单办法就是用信L。信号量是另外一U进E间通讯(IPC)的方式,它同其他IPC机构(道、FIFO、消息队?不同。它是一个记数器Q用于控制多q程对共享数据的存储。同L是你可以用ipcs和ipcrm实现对信L使用状态的查询和对其实现删除操作。在PHP中你可以用下列函数创Z个新的信号量q返回操作该信号量的句柄。如果该key指向的信号量已经存在Qsem_get直接q回操作该信号量的句柄?

 

int sem_get (int key [, int max_acquire [, int perm]]) 

 

  $max_acquire 指明同时最多可以用几个q程q入该信可不必等待该信号被释放(也就是最大同时处理某一资源的进E数?一般该值均ZQ?perm指明了访问权限?

  一旦你成功的拥有了一个信号量Q你对它所能做的只?U:h、释放。当你执行释放操作时, pȝ把该信号值减一。如果小?那就q设?。而当你执行请求操作时Q系l将把该信号值加一Q如果该值大于设定的最大值那么系l将挂v你的处理q程直到其他q程释放到小于最大gؓ止。一般情况下最大D?,q样一来当一个进E获得请求时其他后面的进E只能等待它退Z斥区后释放信号量才能q入该互斥区q同时设为独占方式。这L信号量常UCؓ双态信号量。当Ӟ如果初值是L一个正数就表明有多个׃n资源单位可供׃n应用?

  甌、释放操作的PHP格式如下Q?

 

int sem_acquire (int sem_identifier) 




int sem_release (int sem_identifier) 


释放
其中sem_identifier是调用sem_get的返回|句柄Q?nbsp;
一个简单的互斥协议例子
下面是一D很单的互斥操作规程?

$semid=sem_get(0xee3,1,0666); 
$shm_id = shmop_open(0xff3, "c", 0644, 100); 
sem_acquire(
$semid);?nbsp;//甌 
/*
 q入临界?/span>*/ 
/*q里Q对׃n内存q行处理 */
sem_release(
$semid); ?/span>//释放 

 

 

  正如你所看到的,互斥的实现很单:甌q入临界区,对界区资源q行操作Q比如修改共享内存)退Z界区q放信受这样一来就可以保证在同一个时间片中不可能有同?个进E对同一D共享内存进行操作。因Z号量机制保证一个时间片只能׃个进E进入,其他q程必须{待当前处理的进E完成后方能q入?

  临界Z般是指那些不允许同时有多个进Eƈ发处理的代码Dc?

  要注意的?在PHP中必ȝ同一个进E释攑֮所占用的信号量。在一般系l中允许q程释放别的q程占用的信受在~写临界Z码一定要心设计资源的分配,避免A{BQB{A的死锁情况发生?nbsp;

  q?/strong>

  IPC的运用是十分q泛的。比如,在不同进E间保存一个解释过的复杂的配置文g、或具体讄的用LQ以避免重复处理。我也曾l用׃n内存的技术把一大批PHP脚本必须引用的一个很大的文g攑օ׃n内存Qƈ由此显著提升了Web服务的速度、消除了部分瓉。关于它的用还有聊天室Q多路广播等{。IPC的威力取决于你的惌力的大小。如果本文对你有一点点启发Q那我不胜荣q。愿意很你讨令h入迷的电脑技术。Email: qwyaxm@163.net



 



~程之道 2008-04-18 17:26 发表评论
]]>
Apache模块 开发实??http://www.shnenglu.com/ispfcn/archive/2008/01/30/42234.html~程之道~程之道Wed, 30 Jan 2008 08:35:00 GMThttp://www.shnenglu.com/ispfcn/archive/2008/01/30/42234.htmlhttp://www.shnenglu.com/ispfcn/comments/42234.htmlhttp://www.shnenglu.com/ispfcn/archive/2008/01/30/42234.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/42234.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/42234.html阅读全文

~程之道 2008-01-30 16:35 发表评论
]]>
Smarty截取中文扩展Q支持UTF-8和GBhttp://www.shnenglu.com/ispfcn/archive/2007/11/20/37010.html~程之道~程之道Tue, 20 Nov 2007 06:34:00 GMThttp://www.shnenglu.com/ispfcn/archive/2007/11/20/37010.htmlhttp://www.shnenglu.com/ispfcn/comments/37010.htmlhttp://www.shnenglu.com/ispfcn/archive/2007/11/20/37010.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/37010.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/37010.html 

 1function smarty_modifier_truncate_cn($string, $length = 80, $code = 'UTF-8', $etc = '')
 2{
 3    if ($length == 0)
 4        return '';
 5    if($code == 'UTF-8'){
 6        $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
 7    }
 8    else{
 9        $pa = "/[\x01-\x7f]|[\xa1-\xff][\xa1-\xff]/";
10    }
11    preg_match_all($pa, $string, $t_string);
12    if(count($t_string[0]) > $length)
13        return join('', array_slice($t_string[0], 0, $length)).$etc;
14    return join('', array_slice($t_string[0], 0, $length));
15}

以下代码保存为ascii格式
 1<html>
 2<head>
 3<title>Truncate 试</title>
 4<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
 5</head>
 6<body>
 7{{$string}}<br>
 8{{$string|truncate_cn:15:"":""}}<br>
 9</body>
10</html>


以下代码保存?UTF-8格式
 1<html>
 2<head>
 3<title>Truncate 试</title>
 4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 5</head>
 6<body>
 7{{$string}}<br>
 8{{$string|truncate_cn:15:"UTF-8":""}}<br>
 9</body>
10</html>



~程之道 2007-11-20 14:34 发表评论
]]>
抓取腾讯天气预报的类http://www.shnenglu.com/ispfcn/archive/2007/08/27/30940.html~程之道~程之道Mon, 27 Aug 2007 08:37:00 GMThttp://www.shnenglu.com/ispfcn/archive/2007/08/27/30940.htmlhttp://www.shnenglu.com/ispfcn/comments/30940.htmlhttp://www.shnenglu.com/ispfcn/archive/2007/08/27/30940.html#Feedback1http://www.shnenglu.com/ispfcn/comments/commentRss/30940.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/30940.html阅读全文

~程之道 2007-08-27 16:37 发表评论
]]>
跟我学XSLQ九Q——XSL函数?/title><link>http://www.shnenglu.com/ispfcn/archive/2006/09/14/12449.html</link><dc:creator>~程之道</dc:creator><author>~程之道</author><pubDate>Thu, 14 Sep 2006 03:20:00 GMT</pubDate><guid>http://www.shnenglu.com/ispfcn/archive/2006/09/14/12449.html</guid><wfw:comment>http://www.shnenglu.com/ispfcn/comments/12449.html</wfw:comment><comments>http://www.shnenglu.com/ispfcn/archive/2006/09/14/12449.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ispfcn/comments/commentRss/12449.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ispfcn/services/trackbacks/12449.html</trackback:ping><description><![CDATA[ <p> </p> <p>  本期介绍多个XSL对于VBScript、JScript增加的方法、属性,以充分发挥XML的优势,用于<xsl:script>?lt;xsl:eval>标记内表辑ּ的编写或<xsl:if>?lt;xsl:when>的expr属性?/p> <p> </p> <p>  一、absoluteChildNumber </p> <p>  含义Q返回结点相对于它所有的兄弟Q不论名字是否相同)的序受?/p> <p>  语法QabsoluteChildNumber(node)</p> <p>  参数Qnode ── 对象Q欲q回~号的结炏V?/p> <p>  CZQ?/p> <p>  1、假定文档结构ؓQ?lt;document><head/><body/></document>Q其中document为顶层结点,下述表达式将输出Q?br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">xsl:eval</span> <span style="COLOR: #0000ff">></span> <span style="COLOR: #000000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />absoluteChildNumber(this.selectNodes('/document/body').item(0))<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #0000ff"></</span> <span style="COLOR: #800000">xsl:eval</span> <span style="COLOR: #0000ff">></span> </div>  2、确定当前结点相对于其所有兄弟的序号Q?br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:eval</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />absoluteChildNumber(this)<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:eval</span><span style="COLOR: #0000ff">></span></div><p>  二、ancestorChildNumber</p><p>  含义Q从l定l点出发Ҏl定先l点名返回最q的先l点的序P相对于同名结点)。如果找不祖先,则返??/p><p>  语法QancestorChildNumber(bstrNodeName, pNode)</p><p>  参数Q?/p><p>  bstrNodeName ── 字符丌Ӏ被搜烦的祖先结点的名字?/p><p>  pNode ── 对象。搜索开始位|的l点?/p><p>  CZ查找当前l点最q的名ؓreport先l点Q?/p><p>ancestorChildNumber('report',this)</p><p>  三、attributes</p><p>  含义Q返回结点属性的集合?/p><p>  语法Qobject.attributes</p><p>  参数Qobject ── l点对象?/p><p>  CZQ当前结点属性的个数</p><p>this.attributes.length</p><p>  当前l点W三个属性的?/p><p>this.attributs.item(2).value</p><p>?br /><br />this.attributes.item(2).text</p><p>?br /><br />this.attributes(2).text</p><p>  注意Q如果给定的下标大于属性d?出错,W一个属性的下标??/p><p>  四、baseName</p><p>  含义Q返回有名字I间限制的基本名Q即不包括名字前~?/p><p>  语法Qobject.baseName</p><p>  参数Qobject ── l点对象</p><p>  CZQ当前结点的基本名:<br /><br />this.baseName</p><p>  五、childNumber</p><p>  含义Q返回结点相对于同名同胞的序受?/p><p>  语法QchildNumber(object)</p><p>  参数Qobject ── l点对象</p><p>  CZQ假定XML文档l构如下Q?/p><p><x><y><z></z></y></x></p><p>  如果当前l点是zQ则childNumber(this)q回1Q而absoluteChildNumber(this)q回3?</p><p>  六、dataType</p><p>  含义Q设定或dl点的数据类型?/p><p>  语法Q设定结点的数据cd object.dataType=objValue<br />     dl点的数据类?objValue=object.dataType</p><p>  参数Qobject ── l点对象?br /><br />  CZQ读取当前结点的数据cdQ?/p><p>dtType=this.dataType</p><p>  七、depth</p><p>  含义Q指定结点出现在文档树上的深度,卌l点位于文档W几层,层l点位于W一层,根结点(即用"/"表示的结点)位于W?层?/p><p>  语法Qdepth(pNode)</p><p>  参数QpNode ── l点对象</p><p>  CZQ当前结点的深度Q?/p><p>depth(this)</p><p>  八、firstChild、lastChild</p><p>  含义Q返回结点的W一个子l点Q或最后一个子l点Q?/p><p>  语法QpNode.firstChild<br />     pNode.lastChild</p><p>  参数QpNode ── l点对象</p><p>  CZQ当前结点的W一个结点的名字Q?/p><p>this.firstChild.nodeName</p><p>  九、formatIndex</p><p>  含义Q用指定的计数系l格式化提供的整数?/p><p>  语法QformatIndex(lIndex, bstrFormat)</p><p>  参数Q?/p><p>  lIndex ── 整型数值或变量</p><p>  bstrFormat ── 数据格式Q可选值有a、A、i、I??1Q以0打头的数值Ş式,如果要求固定长度的编号如0001?002则非常有用)?/p><p>  CZQ当前结点的大写|马数字~号Q?/p><p>formatIndex(childNumber(this),'I')</p><p>  十、formatNumber</p><p>  含义Q以指定格式输出数倹{?/p><p>  语法QformatNumber(dblNumber, bstrFormat)</p><p>  参数Q说明同formatNumberQ不同之处在于格式化的可以是数?/p><p>  CZQ对变量a的值格式化Z位小敎ͼ<br /><br />formatNumber(a,'#.00')Q?/p><p>  十一、hasChildNodes</p><p>  含义Q如果结Ҏ子结点则q回trueQ?1Q,否则为falseQ?Q?/p><p>  语法QpNode.hasChildNodes()</p><p>  注意Q与此前介绍的函C同,此函数后必须带一个空括号?/p><p>  CZQ判断当前结Ҏ否有子结点:</p><p>this.hasChildNodes</p><p>  十二、namespaceURI、prefix</p><p>  含义Q返回结点名字空间的全局资源标识W(或前~Q?/p><p>  语法QpNode.namespaceURI<br />     pNode.prifix</p><p>  十三、nextSibling、previousSibling、parentNode</p><p>  含义Q返回结点的下一个兄弟(或前一个兄弟、或l点的父l点Q?/p><p>  语法QpNode.nextSibling<br />     pNode.previousSibling<br />     pNode.parentNode</p><p>  注意Q对根结点(?/"Q应用parentNodeҎ、对W一个孩子结点应用previousSiblingҎ、对最后一个孩子结点应用nextSiblingҎ均会D错误Q可通过此过关系q算W?=Q等于)?=Q不{于Q来判断一个结Ҏ否某一指定l点Q格式ؓpNode1 = pNode2或pNode2 != pNode2?/p><p>  十四、nodeName</p><p>  含义Q返回元素、属性、入口的名字或其他类型结点的一个特定字W串?/p><p>  语法QpNode.nodeName</p><p>  CZQ当前结点的名字Q?/p><p>this.nodeName</p><p>  十五、nodeType、NodeTypeString</p><p>  含义Q返回结点的cd的数值Ş式(或字W串形式Q?br /><br />  语法QpNode.nodeType ?pNode.nodeTypeString</p><p>  q回|<br /><img height="186" alt="o_xsl_12.JPG" src="http://www.shnenglu.com/images/cppblog_com/ispfcn/1308/o_xsl_12.JPG" width="503" border="0" /><br /></p><p>  十六、nodeTypedValue</p><p>  含义Q以l点预定义的数据cdq回l点的倹{?/p><p>  语法QpNode.nodeTypedValue</p><p>  CZQ假定当前结点的数据cd是fixed.14.4Q下例将以数D回结点的|而不是文本一个字W串Q?/p><p>this.nodeTypedValue</p><p>  十七、nodeValue</p><p>  含义Q返回结点的文本?/p><p>  语法QpNode.nodeValue</p><p>  注意Q该Ҏ不用于元素类l点Q可用于属性、CDATA、注释、文本等l点?/p><p>  CZQ当前元素第一个属性的|</p><p>this.attributes(0).nodeValue</p><p>  当前元素内的文本Q假定该元素内只有文本,无其它元素,?lt;mark>text</mark>Q徏议多几ơ掌握其切的用法)?/p><p>this.firstChild.nodeValue</p><p>  十八、ownerDocument</p><p>  含义Q返回包含该l点的文档的栏V?/p><p>  语法QpNode.ownerDocument</p><p>  注意Q该Ҏ用于文档的根l点出错?/p><p>  十九、selectNodes</p><p>  含义Q给定的样式匚w应用于当前结点ƈq回匚w的结炚w合?/p><p>  语法QpNode.selectNodes('pattern')</p><p>  提示Qpattern的编写与<xsl:for-each>的select属性的值类|其中?/"开头表CZ文档的根出发搜烦Q以"http://"开头表遍历文档的所有结点;?.."开头表CZ当前l点的父l点开始;如果Ʋ从当前l点向下搜烦则不能有以上Ҏ字符打头?/p><p>  CZQ与当前l点同名的元素在其父元素内的个数Q?/p><p>childNumber(this.selectNodes("../"+this.nodeName+"[end()]").item(0))</p><p>  当前元素内名字ؓ"skill"的元素的个数Q?/p><p>childNumber(this.selectNodes("skill[end()]").item(0))</p><p>  二十、selectSingleNode</p><p>  含义Q与selectNodescMQ不同的只返回匹配的W一个结炏V而不是结炚w合?/p><p>  语法QpNode.selectSingleNode('pattern')</p><p>  CZQ与当前l点同名的元素在其父元素内的个数Q?/p><p>childNumber(this.selectSingleNode("../"+this.nodeName+"[end()]"))</p><p>  当前元素内名字ؓ"skill"的元素的个数Q?/p><p>childNumber(this.selectSingleNode("skill[end()]"))</p><p>  二十一、text</p><p>  含义Q返回结点与它的子树内的文字内容?/p><p>  语法QpNode.text</p><p>  CZQ整个文档内的文字内容:</p><p>this.ownerDocument.text</p><p>  当前元素及其子树的文字内容:</p><p>this.text</p><p>  二十二、xml</p><p>  含义Q返回结点及其后代的XML表示?/p><p>  语法QpNode.xml</p><p>  CZQ当前文档的XML内容Q?/p><p>this.ownerDocument.xml</p><p>  另有几个函数不作介绍Q列于其下以供参考,如感兴趣Q请讉Khttp://msdn.microsoft.com获取详细说明?/p><p>formatTime(varTime, bstrFormat,varDestLocale) <br />formatDate(varDate, bstrFormat,varDestLocale)<br />apendChild(newChild)<br />definition<br />CloneNode<br />insertBefore(newChild, refChild)<br />parsed<br />removeChild(oldChild)<br />replaceChild(newChild, oldChild)<br />specified<br />transformNode(stylesheet)<br />transformNodeToObject(stylesheet,outputObject) <br />uniqueID(pNode) </p><img src ="http://www.shnenglu.com/ispfcn/aggbug/12449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ispfcn/" target="_blank">~程之道</a> 2006-09-14 11:20 <a href="http://www.shnenglu.com/ispfcn/archive/2006/09/14/12449.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>跟我学XSLQ八Q——脚本与XSL的结合及应用http://www.shnenglu.com/ispfcn/archive/2006/09/14/12448.html~程之道~程之道Thu, 14 Sep 2006 03:17:00 GMThttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12448.htmlhttp://www.shnenglu.com/ispfcn/comments/12448.htmlhttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12448.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/12448.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/12448.html<xsl:eval>

  含义Q计脚本表辑ּQ输Z个文本字W串?/p>

  语法Q?br />

<xsl:eval language="language-name">

  属性:

  language ── 规定所用脚本语a的名字,可用的属性有"JavaScript"?JScript"?VBScript"?VBS"{,~省?JScript"?/p>

<xsl:script>

  含义Q声明全局变量或定义函数?/p>

  语法Q?br />

<xsl:script language="language-name">

  属性:?lt;xsl:eval>


  CZQ?/p>

  不知大家对于W四期《跟我学XML》中的例子是否还有印象?其中的XML文档q没有对历编P但输Z却加上了大写的罗马数字序受今天将再D一Eؓ复杂一些的例子Q?/p>

  假如我们~写一份年l生产统计表Q其中需要小计一,常规的作法是事先其出来,现在不必了,我们可以只给出单统计,昄时再l计计一V请扑և《跟我学XML》的W四期,XML文g不必修改Q对XSL文g的修改如下:

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">
<HTML><HEAD><TITLE>1999q生产统?/span></TITLE></HEAD> 
<BODY><xsl:apply-templates select="document"/></BODY>
</HTML>
</xsl:template>

<xsl:template match="document">
<H3>1999q生产统?/span></H3> 
<TABLE border="1" cellspacing="0"> 
<TH>班组</TH>
<TH>一季度</TH>
<TH>二季?/span></TH>
<TH>三季?/span></TH>
<TH>四季?/span></TH>
<xsl:apply-templates select="report"/>

<TR><TD></TD>
<TD><xsl:eval>total(this,"q1")</xsl:eval></TD>
<TD><xsl:eval>total(this,"q2")</xsl:eval></TD>
<TD><xsl:eval>total(this,"q3")</xsl:eval></TD>
<TD><xsl:eval>total(this,"q4")</xsl:eval></TD>
</TR>

</TABLE>

<xsl:script>
function total(node,q)
{
  temp=0; 
  mark='/document/report/'+q;
  v=node.selectNodes(mark);
  for(t=v.nextNode();t;t=v.nextNode())
  {
    temp+=Number(t.text);
  }
  return temp; //计?br />}
</xsl:script>

</xsl:template>

<xsl:template match="report">
<TR>
<TD><xsl:value-of select="class"/></TD>
<TD><xsl:apply-templates select="q1"/></TD>
<TD><xsl:apply-templates select="q2"/></TD>
<TD><xsl:apply-templates select="q3"/></TD>
<TD><xsl:apply-templates select="q4"/></TD>
</TR>
</xsl:template>

<xsl:template match="q1|q2|q3|q4">
<!--此处试产量Q如于{于20则添加一STYLE属性colorQ其gؓredQ红Ԍ--> 
<xsl:if test=".[value() $le$ 20]"> 
<xsl:attribute name="style">color:red</xsl:attribute>
</xsl:if>
<xsl:value-of/>
</xsl:template>

</xsl:stylesheet>
r_xsl_13.JPG

  说明Q?/p>

  注意到执行结果的变化了吗Q黑体部分ؓd部分Q注意添加部分分Z部分Q?lt;xsl:script></xsl:script>必须|于</TABLE>之后Q切记?/p>

  selectNodes() ── 是XMLDOMObject的一个方法,q回文档中所有满x件的l点的集合,条g?lt; xsl:for-each >和select属性的取值采用同L写法Q可以加{选、下标等限制Q如L一季度产量大于{于50的班l:

/document/report/q1[value() $ge$ 50]

  以上写法q有一个更单的写法Q?/p>

//q1[value()$ge$50]

  //表示从根l点出发遍历所有结点,L满条g的结点,如果文档内有同名但意义不同的l点则不能用此种ҎQ非不得已不使用。以此ؓ例,如果希望l计qM量,则可以下q字W串Ll点Q徏议用最后一U,此种描述精找到需要汇ȝ数据Q:

//*[value()$gt$0] ?//(q1|q2|q3|q4) ?/document/report/(q1|q2|q3|q4)

  nextNode() ── q回l点集中的下一个结?/p>

  Number() ── 提供的参数转换为数?/p>


  下期介绍XSL函数2Q用?lt;xsl:script>?lt;xsl:eval>中,以及<xsl:if>?lt;xsl:when>的expr属性。徏议读者熟悉JavaScript、JScript、VBScript中至一U,否你能用XSL完成的工作将十分有限。由于篇q关p,此处不作详细介绍?/p>

~程之道 2006-09-14 11:17 发表评论
]]>
跟我学XSLQ七Q——XSL函数一http://www.shnenglu.com/ispfcn/archive/2006/09/14/12447.html~程之道~程之道Thu, 14 Sep 2006 03:15:00 GMThttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12447.htmlhttp://www.shnenglu.com/ispfcn/comments/12447.htmlhttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12447.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/12447.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/12447.html
  XML与DHTMLQ动态HTMLQ一Pq些节点都是一个个对象Q而且q些对象都是有层ơ的Q从根节点开始构成一颗层ơ清淅的树状l构Q这Ş成了文档对象模型DOM(Document Object Model)Q通过对象的属性、方法来辑ֈ讉K控制XML节点的目的?/p>


  我们q里不打就XML的DOM逐一详细阐述Q因完全可以写成一个篇q较多的教程Q我们先׃些常见的Ҏ作一些讨论,以期对DOM的对象方法有一个大致的了解?/p>

  注:从本期开始,所有示例不再提供完整源代码Q如有不明白之处Q请仔细阅读前面七期、ƈ动手l手?/p>

  一、end()

  含义Q返回集合中最后一个元素?/p>

  CZQ输出最后一份简?/p>

  假定XML文g格式为:

…?lt;resume>?lt;/resume>…?lt;resume>?lt;/resume>…?/p>

  相应XSL文g内容为:

<xsl:for-each select="resume[end()]">…?/span></xsl:for-each>
  或:
<xsl:templates match="resume[end()]">…?/span></xsl:templates>
  或:
<xsl:apply-template select="resume[end()]">…?/span></xsl:apply-template>

  二、index()

  含义Q返回该元素在集合中的位|,q回值是一整数Q其中第一个元素返??/p>

  CZQ返回前面三份简历?/p>

resume[index()$le$3]

  注意Qindex()是与父元素相关的Q请看下例:

<x>
<y/>
<y/>
</x>
<x>
<y/>
<y/>
</x>

  q回所?lt;x>中的W一?lt;y>

x/y[index()=0] 或x/y[0]

  三、nodeName()

  含义Q返回元素的名字Q即标记名?/p>

  CZQ选择L元素Q假如其名字Q即标记名){于"name"Q?/p>

*[nodeName()='name'] ?*[name]

  四、number()

  含义Q将D{换ؓ数值Ş式,如果不是数值则q回I,要求参数?/p>

  CZQ年?age)于30岁的人的?resume)Q?/p>

resume[number(age)$lt$30] ?resume[age$lt$30]

  五、nodeType()

  含义Q返回结点类型,l果为是数倹{以下是q回值列表:
r_xsl_12.JPG

  六、value()

  含义Q返回元素或属性的倹{?/p>

  CZQvalue()是元素或属性的~省ҎQ以下表C是{hQ?/p>

name!value()="NAME" ?name="NAME"

@attr="attribute_value" ?@attr="attribute_value"

  注:@是属性前~Q@attr表示是属性attr

  七、attribute()

  含义Q返回所有属性结点的集合Q等价于"@*"?/p>

  CZQ寻找所有的resume元素Q满x件至有一个属性的gؓ"ABC"Q?/p>

resume[$any$attribute()='ABC'] ?resume[$any$@*='ABC']

  L所有的resume元素Q满x件至有一个子元素有一个属性的gؓ"ABC"Q?/p>

resume[$any$*/attribute()='ABC'] ?resume[$any$*/@*='ABC']

  八、comment()

  含义Q返回所有注释结炏V?/p>

  CZQ?/p>

resume[$any$comment()='希初的?]

  表示L含有注释语句Q?lt;!--希初的?->?lt;resume>元素?/p>

  九、cdata()

  含义Q返回所有CDATAcd的结点的集合?/p>

  CZQ?/p>

resume[$any$cdata()='希初的?]

  表示L含有下述语句Q必L直接子结点)<![CDATA[希初的历]]>?lt;resume>元素?/p>

  十、node()

  含义Q返回当前上下文环境中除根结点和属性结点以外的所有结点的集合Q等价于Q?/p>

"*|pi()|comment()|text()"

  CZQ寻找所有元素resumeQ其最后一个结点的名字?skill"Q?/p>

resume[node()[end()]!nodeName()='skill']

  L所有resume元素的第一个结点:resume/node()[0]?/p>

  十一、textnode()

  含义Q返回所有文本类型的l点的集合?/p>

  CZQ寻找每一个p元素的第二个文本l点Q?/p>

p/textnode(1) ?p!textnode(1)

  十二、text()

  含义Q返回所有表C文本字W串的结点的集合Q等价于"cdata()|textnode()"?/p>

  本期的内容就介绍xQ另有一个函数date()在本人的机器上一试就发生错误使浏览器自动关闭Q还有一个函数pi()本h未扑ֈ适当的应用方法,׃介绍了,下期讲q如何XSL中用脚本?/p>

~程之道 2006-09-14 11:15 发表评论
]]>
跟我学XSLQ六Q——XSL的运符http://www.shnenglu.com/ispfcn/archive/2006/09/14/12446.html~程之道~程之道Thu, 14 Sep 2006 03:11:00 GMThttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12446.htmlhttp://www.shnenglu.com/ispfcn/comments/12446.htmlhttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12446.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/12446.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/12446.html表一、运符与特D字W?br />o_xsl_9.JPG

表二、逻辑q算W?br />r_xsl_10.JPG

表三、关p运符
r_xsl_11.JPG

  CZ一Q?/p>

  从个人简历中Lhh"WEB开?技能的人的姓名与E-Mail。假设文档结构如下所C:

< document >
< resume >
< name > name </ name >
< sex > sex </ sex >
< birthday > birthday </ birthday >
< skill > skill1 </ skill >
< skill > skill2 </ skill2 >
?br />
< skill > skilln </ skill >
</ resume >
< resume >
?br />
</ resume >
?br />
</ document >

  Z以上l构的个人简历中L出所有具有WEB开?技能的人的姓名与E-Mail的XSL文档l构如下Q?br />
<TABLE border="1" cellspacing="0">
<TH>姓名</TH><TH>E-Mail</TH>
<xsl:for-each select="resume [$any$skill="WEB开?]">
<TR><TD><xsl:value-of select="name"/></TD>
<TD><xsl:value-of select="E-Mail"/></TD>
</TR>
</xsl:for-each>
</TABLE>

  说明Q?/p>

  1.[ ] ── 表示选择条gQ只有满x件的个h历才被显C?/p>

  2.$any$ ── ׃每个人有多种技能,故加$any$作ؓ前缀Q以使每个h所有技能都能被比较?/p>

  3.skill='WEB开? ── {选条件?/p>

  CZ二?/p>

  仍上面的XML文档ZQ如果欲选择1977/1/1之前出生的h的姓名、技能与E-MailQ相应的XSL文档l构如下Q假定生日格式ؓyyyy/mm/ddQ:

<TABLE border="1" cellspacing="0">
<TH>姓名</TH><TH>技?/span></TH><TH>E-Mail</TH>
<xsl:for-each select="resume[birthday$lt$"1977/1/1"]">
<TR>
<TD><xsl:value-of select="name"/></TD>
<TD>
<xsl:value-of select="skill[0]"/>
<xsl:for-each select="skill[index()>0]">?br /><xsl:value-of select="."/>
</xsl:for-each>
</TD>
<TD><xsl:value-of select="E-Mail"/></TD>
</TR>
</xsl:for-each>
</TABLE>

  说明Q?/p>

  1.birthday $lt$ '1977/1/1' ── 搜烦条gQ在此处使用"< "会错误,故?$lt$"表示于?/p>

  2.skill [0] ── 表示选择skill的第一V?/p>

  3.skill [index()>0] ── 表示选择skill的第二项以后Q包括第二项Q的目?/p>

  4.xsl:value-of select="." ── 表示选择当前标记的倹{?/p>

  怿大家应该注意刎ͼ在前面以及本ơ的例子中出C一些函敎ͼ如index()、formatIndex()、childNumber()Q也许大家还不完全明了其中的含义吧?敬请x下一课?/p>

~程之道 2006-09-14 11:11 发表评论
]]>
跟我学XSLQ五Q——XSL中的choosehttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12443.html~程之道~程之道Thu, 14 Sep 2006 03:05:00 GMThttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12443.htmlhttp://www.shnenglu.com/ispfcn/comments/12443.htmlhttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12443.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/12443.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/12443.html  上期我们学习了XSL元素<xsl:if>Q已能通过试XML数据的值来军_不同的输出Ş式,不知你尝试过没有Q实际上<xsl:for-each>也可部分实现<xsl:if>的功能,但有Ӟ我们希望对同一数据同时试多个条gQ根据不同条件输出相应结果。当Ӟ我们可以用ifQ假如我们只有if可用的话。幸好我们有一个更好的选择Q那是?lt;xsl:choose>。下面介l相兛_素的语法Q?br />
  <xsl:choose>

  语法Q?lt;xsl:choose>

  属性:无,表示一个多选测试的开?/p>

  <xsl:when>

  语法Q?br />

< xsl:when  expr ="script-expression"  language ="language-name"  test ="pattern" >
  属性:

  expr ── 脚本语言表达式,计算l果????Q如果结果ؓ"?Q且通过testQ则在输Z昄其中内容Q可省略此项属性)?br />
  language ── expr属性中表达式的脚本语言cdQ其取gHTML标记SCRIPT的LANGUAGE属性的取值相同,~省?JScript"?br />
  test ── 源数据测试条件?

  <xsl:otherwise>

  语法Q?lt;xsl:otherwise>

  属性:无,在一个多选测试中Q如果没有不满<xsl:when>规定的条Ӟ如果在最后有此标讎ͼ则输出此标记中的内容?/p>

  CZQ?/p>

  此处以学生成l单ZQ要求按成W的高低给ZUQ?>85Q、一般(70~85Q、及|60~69Q、不及格Q?lt; 60Q,而不是显C分数。其中成l单的XML文档(文g名:grade.xml)如下Q?br />

<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="grade.xsl"?>
<document>
<grade>
<name>大胖</name>
<english>80</english>
<math>90</math>
<chymest>90</chymest>
</grade>
<grade>
<name></name>
<english>98</english>
<math>70</math>
<chymest>85</chymest>
</grade>
</document>

  为实现按分数分等U显C,其XSL文档Q文件名Qgrade.xslQ内容如下:

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML>
<HEAD><TITLE>成W?/span></TITLE></HEAD>
<BODY>
<xsl:apply-templates select="document"/>
</BODY>
</HTML>
</xsl:template>

<xsl:template match="document">
<TABLE border="1" cellspacing="0">
<TH>姓名</TH><TH>p</TH><TH>数学</TH><TH>化学</TH>
<xsl:apply-templates select="grade"/>
</TABLE>
</xsl:template>

<xsl:template match="grade">
<TR>
<TD><xsl:apply-templates select="name"/></TD>
<TD><xsl:apply-templates select="english"/></TD>
<TD><xsl:apply-templates select="math"/></TD>
<TD><xsl:apply-templates select="chymest"/></TD>
</TR>
</xsl:template>

<xsl:template match="name">
<xsl:value-of/>
</xsl:template>

<xsl:template match="english|math|chymest">
<xsl:choose>
<xsl:when test=".[value()$gt$85]">优秀</xsl:when>
<xsl:when test=".[value()$gt$70]">一?/span></xsl:when>
<xsl:when test=".[value()$gt$60]">h</xsl:when>
<xsl:otherwise>不v?/span></xsl:otherwise>
</xsl:choose>
</xsl:template>

</xsl:stylesheet>


o_xsl_8.JPG
 说明Q在<xsl:choose>选择中,从第一?lt;xsl:when>开始,逐个试Q直到满一个测试条件就其中的内容输出Q不再测试后面的条gQ如果不满M一个条Ӟ则输?lt;xsl:otherwise>中的内容?br />
  标记?lt;xsl:when></xsl:when>?lt;xsl:otherwise></xsl:otherwise>中可嵌套<xsl:if>?lt;xsl:choose>?img src ="http://www.shnenglu.com/ispfcn/aggbug/12443.html" width = "1" height = "1" />

~程之道 2006-09-14 11:05 发表评论
]]>
跟我学XSLQ四Q——测试模?/title><link>http://www.shnenglu.com/ispfcn/archive/2006/09/14/12441.html</link><dc:creator>~程之道</dc:creator><author>~程之道</author><pubDate>Thu, 14 Sep 2006 03:02:00 GMT</pubDate><guid>http://www.shnenglu.com/ispfcn/archive/2006/09/14/12441.html</guid><wfw:comment>http://www.shnenglu.com/ispfcn/comments/12441.html</wfw:comment><comments>http://www.shnenglu.com/ispfcn/archive/2006/09/14/12441.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ispfcn/comments/commentRss/12441.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ispfcn/services/trackbacks/12441.html</trackback:ping><description><![CDATA[ <p>  XML技术的优势之一在于数据输出的可选择性,即选择需要的数据输出。前面我们所讲到的选择模式语句:<xsl:for-each>?lt;xsl:value-of>?lt;xsl:apply-template>只是单的选取通过"/"W号层层到达的节点,如果我们对XML数据不需要全部输出,而只需要其中的满某条件的部分数据Q?萝卜青菜、各取所需"Q那么条件判?lt;xsl:if>与多条g判断<xsl:choose>?lt;xsl:when>则迎合了q种需要,如果你对E序设计熟悉的话Q会觉得它们似曾相识?</p> <p> </p> <p>  XSL中的IFQ首先,介绍XSL元素<xsl:if>的语法结构: </p> <p> </p> <p>  语法Q?br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">xsl:if </span> <span style="COLOR: #ff0000">expr</span> <span style="COLOR: #0000ff">="script-expression"</span> <span style="COLOR: #ff0000"> language</span> <span style="COLOR: #0000ff">="language-name"</span> <span style="COLOR: #ff0000"> test</span> <span style="COLOR: #0000ff">="pattern"</span> <span style="COLOR: #0000ff">></span> </div> 属性: <p>  expr ── 脚本语言表达式,计算l果????Q如果结果ؓ"?Q且通过testQ则在输Z昄其中内容Q可省略此项属性)?</p><p>  language ── expr属性中表达式的脚本语言cdQ其取gHTML标记SCRIPT的LANGUAGE属性的取值相同,~省?JScript"?br /><br />  test ──源数据测试条件?</p><p>  CZQ?</p><p>  此处以一份报表ؓ例,文g名ؓreport.xmlQ其内容如下Q?<br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff"><?</span><span style="COLOR: #ff00ff">xml version="1.0" encoding="GB2312"</span><span style="COLOR: #0000ff">?></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><?</span><span style="COLOR: #ff00ff">xml-stylesheet type="text/xsl" href="report.xsl"</span><span style="COLOR: #0000ff">?></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">document</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">report</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">class</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />甲班<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">class</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">q1</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">50</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">q1</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">q2</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">70</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">q2</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">q3</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">30</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">q3</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">q4</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">10</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">q4</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">report</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">report</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">class</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />乙班<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">class</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">q1</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">20</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">q1</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">q2</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">30</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">q2</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">q3</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">40</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">q3</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">q4</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">50</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">q4</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">report</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">report</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">class</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />丙班<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">class</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">q1</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">70</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">q1</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">q2</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">40</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">q2</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">q3</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">20</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">q3</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">q4</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">10</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">q4</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">report</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">document</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"> </span></div><br />  我们采用XSL模板l合今天所学的<xsl:if>Qؓ其编写一个XSL文档Q要求季度量小于等?0的用U色表示Q文件名为report.xslQ内容如下: <br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff"><?</span><span style="COLOR: #ff00ff">xml version="1.0" encoding="GB2312"</span><span style="COLOR: #0000ff">?></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:stylesheet </span><span style="COLOR: #ff0000">xmlns:xsl</span><span style="COLOR: #0000ff">="http://www.w3.org/TR/WD-xsl"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:template </span><span style="COLOR: #ff0000">match</span><span style="COLOR: #0000ff">="/"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">HTML</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">HEAD</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">TITLE</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">1999q生产统?/span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TITLE</span><span style="COLOR: #0000ff">></</span><span style="COLOR: #800000">HEAD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"> <br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">BODY</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">xsl:apply-templates </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="document"</span><span style="COLOR: #0000ff">/></</span><span style="COLOR: #800000">BODY</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">HTML</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:template</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:template </span><span style="COLOR: #ff0000">match</span><span style="COLOR: #0000ff">="document"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">H3</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">1999q生产统?/span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">H3</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"> <br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TABLE </span><span style="COLOR: #ff0000">border</span><span style="COLOR: #0000ff">="1"</span><span style="COLOR: #ff0000"> cellspacing</span><span style="COLOR: #0000ff">="0"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"> <br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TH</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">班组</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TH</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TH</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">一季度</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TH</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TH</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">二季?/span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TH</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TH</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">三季?/span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TH</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TH</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">四季?/span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TH</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:apply-templates </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="report"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TABLE</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:template</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:template </span><span style="COLOR: #ff0000">match</span><span style="COLOR: #0000ff">="report"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TR</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">xsl:value-of </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="class"</span><span style="COLOR: #0000ff">/></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">xsl:apply-templates </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="q1"</span><span style="COLOR: #0000ff">/></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">xsl:apply-templates </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="q2"</span><span style="COLOR: #0000ff">/></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">xsl:apply-templates </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="q3"</span><span style="COLOR: #0000ff">/></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">xsl:apply-templates </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="q4"</span><span style="COLOR: #0000ff">/></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TR</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:template</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:template </span><span style="COLOR: #ff0000">match</span><span style="COLOR: #0000ff">="q1|q2|q3|q4"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000"><!--</span><span style="COLOR: #008000">此处试产量Q如于{于20则添加一STYLE属性colorQ其gؓredQ红Ԍ</span><span style="COLOR: #008000">--></span><span style="COLOR: #000000"> <br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:if </span><span style="COLOR: #ff0000">test</span><span style="COLOR: #0000ff">=".[value()$le$20]"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"> <br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:attribute </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="style"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">color:red</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:attribute</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:if</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:value-of</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:template</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:stylesheet</span><span style="COLOR: #0000ff">></span></div><img height="176" alt="o_xsl_7.JPG" src="http://www.shnenglu.com/images/cppblog_com/ispfcn/1308/o_xsl_7.JPG" width="272" border="0" /><br /><p>  说明Q?/p><p>  q1|q2|q3|q4 ── 标记q1、q2、q3、q3均用此模板确定输?/p><p>  $le$ ── 是关p运符中的"于{于"Q其它关pL于Q?lt$Q、大于($gt$Q、大于等于($ge$Q、等于($eq$Q、不{于Q?ne$Q等?/p><p>  . ── 表示引用当前标记?/p><p>  [ ] ── 表示{选,只有满{选条件的标记才能被选取?/p><p></p><p>  value() ──XSL函数Q其他常用XSL函数有text()、end()、index(){?</p><p></p><p></p><p>  下期Q我们将学习XSL的另外三个元素,可对同一数据q行多次试Q根据不同条件生相应输出?/p><img src ="http://www.shnenglu.com/ispfcn/aggbug/12441.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ispfcn/" target="_blank">~程之道</a> 2006-09-14 11:02 <a href="http://www.shnenglu.com/ispfcn/archive/2006/09/14/12441.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>跟我学XSLQ三Q——XSL模板与匹配模?/title><link>http://www.shnenglu.com/ispfcn/archive/2006/09/14/12440.html</link><dc:creator>~程之道</dc:creator><author>~程之道</author><pubDate>Thu, 14 Sep 2006 02:56:00 GMT</pubDate><guid>http://www.shnenglu.com/ispfcn/archive/2006/09/14/12440.html</guid><wfw:comment>http://www.shnenglu.com/ispfcn/comments/12440.html</wfw:comment><comments>http://www.shnenglu.com/ispfcn/archive/2006/09/14/12440.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ispfcn/comments/commentRss/12440.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ispfcn/services/trackbacks/12440.html</trackback:ping><description><![CDATA[ <p>  l过前几日的学习Q我们学习了XHTML文档的编写和以及三个XSL元素Q已能编写相当灵zȝXSL文档Q今天将学习的是XSL模板的编写。我们都知道Q短的文档、程序十分好读,但当规模增大后,其复杂性也以更快的速度增加?/p> <p>  前面我们学了<xsl:for-each>?lt;xsl:value-of>{,可以用它们对XML数据实现单的格式化输出,但如果遇到比较复杂的XML格式输出Q将XSL按照要求依次写下来的话,一是设计困难,可扩展性差Q不利于人员之间的分工协作;另则Q可修改性很差,可能会出现牵一发而动全军的情况,不利于维护。程序中模块化设计逐步l化的方法在q里得到了应用! </p> <p>  XSL模板XSL的设计细化成一个个模板Q块Q,最后再这些模板(块)l合成一个完整的XSLQ好比船与集装箱Q我们不是将所有的货物一件g地堆hQ而是装在各自的集装箱中,然后再在船上这些集装箱堆放h。这U方法可以你先从整体上考虑整个XSL的设计,然后一些表现Ş式细化成不同的模块,再具体设计这些模块,最后将它们整合在一Pq样Q将宏观与微观结合v来,W合Z条理化、规范化要求?/p> <p> </p> <p>  装集装箱Q-书写模板Q块Q:<xsl:template></p> <p>  语法Q?br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff"><</span> <span style="COLOR: #800000">xsl:template </span> <span style="COLOR: #ff0000">match</span> <span style="COLOR: #0000ff">="node-context"</span> <span style="COLOR: #ff0000"> language</span> <span style="COLOR: #0000ff">="language-name"</span> <span style="COLOR: #0000ff">></span> </div> 属性: <p>  match ── 定什么样的情况下执行此模ѝ作ZU简化的说明Q在此处使用标记的名字;其中最上层模板必须match设ؓ"/"?/p><p>  language ── 定在此模板中执行什么脚本语aQ其取gHTML中的SCRIPT标记的LANGUAGE属性的取值相同,~省值是Jscript?/p><p>  <xsl:template>用match属性从XML选取满条g的节点,征对q些特定的节点Ş成一个特定输出Ş式的模板?/p><p></p><p>  吊集装箱上船Q-调用模板Q块Q:<xsl:apply-templates></p><p>  语法Q?/p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:apply-templates </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="pattern"</span><span style="COLOR: #ff0000"> order-by</span><span style="COLOR: #0000ff">="sort-criteria-list"</span><span style="COLOR: #0000ff">></span></div><p>属性:</p><p>  select ── 定在此上下文环境中应执行什么模板,即选取?lt; xsl:template >标记建立的模板(块)?/p><p>  order-by ── 以分P;Q分隔的排序标准Q通常是子标记的序列?/p><p>  CZQ?/p><p>  以个人简历ؓ例,Z于处理我们希?技?中每一w用标记对<skill></skill>括v来,有多项技能就有多个q种标记对,l过修改后的个h历XML文档内容如下Q?br /></p><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff"><?</span><span style="COLOR: #ff00ff">xml version="1.0" encoding="GB2312"</span><span style="COLOR: #0000ff">?></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><?</span><span style="COLOR: #ff00ff">xml-stylesheet type="text/xsl" href="resume_template.xsl"</span><span style="COLOR: #0000ff">?></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">document</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">resume</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">希?/span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">name</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">sex</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">?/span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">sex</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">birthday</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">1977.5</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">birthday</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">skill</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">数据库设计与l护</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">skill</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">skill</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">WEB开?/span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">skill</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">resume</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">document</span><span style="COLOR: #0000ff">></span></div><br />  然后Q徏立一个新XSL文gresume_template.xslQ采用模板的形式Q其内容如下Q?br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff"><?</span><span style="COLOR: #ff00ff">xml version="1.0" encoding="GB2312"</span><span style="COLOR: #0000ff">?></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:stylesheet </span><span style="COLOR: #ff0000">xmlns:xsl</span><span style="COLOR: #0000ff">="http://www.w3.org/TR/WD-xsl"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000"><!--</span><span style="COLOR: #008000">Ҏ?/span><span style="COLOR: #008000">--></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:template </span><span style="COLOR: #ff0000">match</span><span style="COLOR: #0000ff">="/"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">HTML</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">HEAD</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">TITLE</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">个h?/span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TITLE</span><span style="COLOR: #0000ff">></</span><span style="COLOR: #800000">HEAD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">BODY</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:apply-templates </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="document/resume"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">BODY</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">HTML</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:template</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000"><!--</span><span style="COLOR: #008000">历模?/span><span style="COLOR: #008000">--></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:template </span><span style="COLOR: #ff0000">match</span><span style="COLOR: #0000ff">="resume"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TABLE </span><span style="COLOR: #ff0000">border</span><span style="COLOR: #0000ff">="1"</span><span style="COLOR: #ff0000"> cellspacing</span><span style="COLOR: #0000ff">="0"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">CAPTION</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">个h历(<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:eval</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">formatIndex(childNumber(this),"I")</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:eval</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />Q?/span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">CAPTION</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:apply-templates </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="name"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:apply-templates </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="sex"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:apply-templates </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="birthday"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TR</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">技?/span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">TD </span><span style="COLOR: #ff0000">COLSPAN</span><span style="COLOR: #0000ff">="5"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TABLE </span><span style="COLOR: #ff0000">cellspacing</span><span style="COLOR: #0000ff">="0"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:apply-templates </span><span style="COLOR: #ff0000">select</span><span style="COLOR: #0000ff">="skill"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TABLE</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TABLE</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">BR</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:template</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000"><!--</span><span style="COLOR: #008000">姓名模板</span><span style="COLOR: #008000">--></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:template </span><span style="COLOR: #ff0000">match</span><span style="COLOR: #0000ff">="name"</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">姓名</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">xsl:value-of</span><span style="COLOR: #0000ff">/></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:template</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000"><!--</span><span style="COLOR: #008000">性别模板</span><span style="COLOR: #008000">--></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:template </span><span style="COLOR: #ff0000">match</span><span style="COLOR: #0000ff">="sex"</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">性别</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">xsl:value-of</span><span style="COLOR: #0000ff">/></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:template</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000"><!--</span><span style="COLOR: #008000">生日模板</span><span style="COLOR: #008000">--></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:template </span><span style="COLOR: #ff0000">match</span><span style="COLOR: #0000ff">="birthday"</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">生日</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">xsl:value-of</span><span style="COLOR: #0000ff">/></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:template</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000"><!--</span><span style="COLOR: #008000">技能模?/span><span style="COLOR: #008000">--></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">xsl:template </span><span style="COLOR: #ff0000">match</span><span style="COLOR: #0000ff">="skill"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">TR</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">><</span><span style="COLOR: #800000">xsl:value-of</span><span style="COLOR: #0000ff">/></</span><span style="COLOR: #800000">TD</span><span style="COLOR: #0000ff">></</span><span style="COLOR: #800000">TR</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:template</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">xsl:stylesheet</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span></div><img height="139" alt="o_xsl_6.JPG" src="http://www.shnenglu.com/images/cppblog_com/ispfcn/1308/o_xsl_6.JPG" width="259" border="0" /><br />  保存文gQ打开文gQ个人简?xmlQ,效果令h满意吧。其实要做到同样的效果,用前面三周介l的Ҏ也可做,但你得把它作Z整体考虑?br /><br />  在上面的XSL文g中,我们性别、生日、技能等数据分别用模板来单独写Q再?lt;xsl:apply-template>来调用,q样Q即使你日后要对q些模板作相应的修改与扩充也很方便,不致于出C相干扰、؜杂不清的情况。这U从上至下、逐层l化的设计方法,极大地减工作复杂程度,也大大减了差错的生,可以实现多h的协作设计? <p>  注意Q如果XML文档中不同标记有同名的子标记Q在为其~写模板Ӟ应把父标C为其前缀Q格式ؓQparent_mark/child_markQ。模板文件必L一个根模板Q其属性match?/"?/p><img src ="http://www.shnenglu.com/ispfcn/aggbug/12440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ispfcn/" target="_blank">~程之道</a> 2006-09-14 10:56 <a href="http://www.shnenglu.com/ispfcn/archive/2006/09/14/12440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>跟我学XSLQ二Q——XSL入门http://www.shnenglu.com/ispfcn/archive/2006/09/14/12439.html~程之道~程之道Thu, 14 Sep 2006 02:52:00 GMThttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12439.htmlhttp://www.shnenglu.com/ispfcn/comments/12439.htmlhttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12439.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/12439.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/12439.html
  XML在更多的时候只是一U数据文Ӟ怎样它变ؓ我们日常所看到的HTML格式那样的文件呢Q如果我们将XML文g比作l构化的原料的话Q那么XSL好?{子"?模子"Q筛子选取自己需要的原料Q这些原料再通过模子形成最l的产品QHTML?br />
  q个模子大致是这P我们先设计好表现的页面,再将其中需要从XML中获取数据来填充内容的部?挖掉"Q然后用XSL语句从XML中筛出相关的数据来填充。一a以譬之:qXSL实际上就是HTML的一?壛_"QXML数据利用q个"?来生?传统"的HTML?br />
  XML在展开时是一个树形结构,我们树形结构中自定义标记称点,节点之间存在父子、兄弟关p,我们要访问其中的l点从根l点p?Q?来层层进入?br />
  在XSLq个壳中Q我们要从原料库XML里提取相关的数据Q就要用到XSL提供的模式化查询语言。所谓模式化查询语言Q就是通过相关的模式匹配规则表辑ּ从XML里提取数据的特定语句Q即我们上面所说的"{子"?

  参考微软的"XSL开发者指?Q我们大致可模式语a分ؓ三种Q?/p>

  选择模式Q?br />
<xsl:for-each>?lt;xsl:value-of>?<xsl:apply-templates>

  试模式Q?br />
<xsl:if> ?lt;xsl:when>

  匚w模式Q?br />
<xsl:template>

  我们现在分别对之进行介l?br />
  一?选择模式

  选择模式语句数据从XML中提取出来,是一U简单获得数据的ҎQ这几个标记都有一个select属性,选取XML中特定的l点名的数据?br />
  1?lt;xsl:for-each>

  如在XML中有q样的数?

<author>
<name></name>
<name>春华</name>
<name>U实</name>
</author>

 我们要读取这三个作者名字,是一个一个地?author/name"Ҏ来读取吗Q可有多个这Lname呀Q如果有一U程序性的语句来@环读取有多好啊!

  惛_很对QXSL提供了这LhE序语言性质的语句:<xsl:for-each>

  用它dq三个作者名字的Ҏ如下:
<xsl:for-each select="author/name">
…?br />
</xsl:for-each>
  selectQ顾名思义Q选取Q它可以选定XML中特定唯一的标讎ͼ也可以选择某一cȝ同的标记Q我们称之ؓl点集?br />
  语法Q?br />
<xsl:for-each select="pattern" order-by="sort-criteria-list">
  属性:

  1.select

  ҎXSL样式查询考察上下文以军_哪类l点集(满select条gQ用此样式描述。作ZU简化的表示是Q如果你惛_文档中的某一U标记的内容的显C方式进行格式化Q就可以让select{于此元素的标记名。例如欲Ҏ记xml_markq行格式化,卛_用如下方式表C:
<xsl:for-each select="xml_mark">
<!--样式定义-->
</xsl:for-each>
  2.order-by

  以分P;Q分隔、作为排序标准的列表。在列表元素前添加加P+Q表C按此标记的内容以升序排序,d减号Q?Q表C逆序排序。作ZU简化的表示是Q排序标准列表就是由select规定的标记的子标记的序列Q每个标C间以Q?Q分隔?

  2?lt;xsl:value-of>

  <xsl:for-each>模式只是选取节点Qƈ没有取出节点的|好比猴子只是爬到了树的某个枝q上Q那么就?lt; xsl:value-of >来摘"胜利果实"吧!

  语法Q?br />
<xsl:value-of select="pattern">提取节点的?br />
  属性:

  select用来与当前上下文匚w的XSL式样。简单的Ԍ如果要在XSL文档某处插入某个XML标记Q假定是xml_mark标记Q的内容Q可用如下方式表C:

<xsl:value-of select="xml_mark"></xsl:value-of>

  ?br />
<xsl:value-of select="xml_mark"/>
CZQ?br />
  此处仍以上期的个人简历的作ؓ例子Q我们需要对文gQ个人简?xmlQ作一定修改,切的说是将其中的第二行Q?br />
<?xml-stylesheet type="text/css" href="resume.css"?>
  修改为:
<?xml-stylesheet type="text/xsl" href="resume.xsl"?>
 然后建立一个新文gQresume.xslQ其内容如下Q?br />
<?xml version="1.0" encoding="GB2312"?>
<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<HEAD>
<TITLE>个h?/span></TITLE>
</HEAD><BODY> 
<xsl:for-each select="resume">
<P/>
<TABLE border="1" cellspacing="0">
<CAPTION style="font-size: 150%; font-weight: bold">
个h?br />
</CAPTION>
<TR>
<TH>姓名</TH><TD><xsl:value-of select="name"/></TD>
<TH>性别</TH><TD><xsl:value-of select="sex"/></TD>
<TH>生日</TH><TD><xsl:value-of select="birthday"/></TD>
</TR>
<TR>
<TH>技?/span></TH><TD colspan="5"><xsl:value-of select="skill"/></TD>
</TR>
</TABLE>
</xsl:for-each>
</BODY>
</HTML>
o_xsl_4.JPG
  完成q些以后再来让我们看一下辛勤劳动的成果Q怎么P效果不错吧。更酯在后头呢。现在我们对文gQ个人简?xmlQ作q一步的修改Q?br />
  1.在标?lt;resume>前添加一个新标记<document>Q?br />
  2.标记对<resume></resume>之间的内容(包括q一Ҏ讎ͼ复制q粘贴在其后Qƈ在最后用<document>l束?br />
  3.以Notepad.exe打开文gresume.xslQ在标记<HTML>之后d文字Q?lt;xsl:for-each select="document">Q在标记</HTML>之前d文字Q?lt;/xsl:for-each>Q保存文件?br />
  4.在浏览器中打开文gQ个人简?xmlQ。看C什么?两䆾个h历!
o_xsl_5.JPG
  pP利用XML我们可以~写内容与样式完成分ȝ文档Q当ӞXSL文g比一般的HTML文g要复杂一些,然而一旦完成则可用于格式化所有同cȝXML文档?

~程之道 2006-09-14 10:52 发表评论
]]>
跟我学XSLQ一Q——第一个XML文档http://www.shnenglu.com/ispfcn/archive/2006/09/14/12438.html~程之道~程之道Thu, 14 Sep 2006 02:45:00 GMThttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12438.htmlhttp://www.shnenglu.com/ispfcn/comments/12438.htmlhttp://www.shnenglu.com/ispfcn/archive/2006/09/14/12438.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/12438.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/12438.html

  随着Internet的发展,来多的信息进入互联网Q信息的交换、检索、保存及再利用等q切的需求HTMLq种最常用的标记语a已越来越捉襟见肘。HTML数据内容与表现融ؓ一体,可修Ҏ、数据可索性差Q而XML借鉴了HTML与数据库、程序语a的优点,内容与表现分开Q不仅ɋ索更为方便,更主要的是用户之间数据的交换更加方便Q可重用性更强?/p>

  XML是一U元标记语言Q没有许多固定的标记QؓWEB开发h员提供了更大的灵zL。当我们使用HTMLӞ标记只是单的表示内容的显CŞ式,而与表示的内Ҏ有Q何关联,为文档的q一步处理带来极大的不便。比如要表示个h历,用HTML的表C方式如下:

< HTML >
< BODY >
< TABLE  border =1  cellspacing =0 >
< TH > 姓名 < TD > 希?/span> < TH > 性别 < TD > ?/span> < TH > 生日 < TD > 1977.5
< TR >
< TH > 技?/span> < TD  colspan =5 > 数据库设计与l护、WEB开?br /> </ TABLE >
</ BODY >
</ HTML >

r_xsl_1.JPG

 在这里,我们无法从标记TH、TD得知其内容表CZ么,如果用XMLQ相应的文档Q文件名Q个人简?xmlQ就可写成如下Ş式:

<? xml version="1.0" encoding="GB2312" ?>
< resume >
< name > 希?/span> </ name >
< sex > ?/span> </ sex >
< birthday > 1977.5 </ birthday >
< skill > 数据库设计与l护、WEB开?/span> </ skill >
</ resume >

o_xsl_2.JPG

说明Q?/p>

  version──规定了XML文档的版本,此处只能?.0Q?/p>

  encoding── 此处规定了XML文档的编码类型,此处取gؓ"GB2312"Q也是"体中??/p>

  Ҏ两例Q用XML我们可以做到自定义标讎ͼ用标记表明内容的含义。这样在Internet上交资料时Qؓ用计机处理文档提供了极大的方便Q同时我们阅L文g时也不会被一大堆格式弄得晕头转向?/p>

  然而,׃XMLq没有ؓ标记规定昄方式Q如果我们在游览器中查看以上两个文档Q徏议用IE5.0或更新版本)Q我们将看到xml文档q没有以诸如表格的方式来昄。难道我们就不能像HTML一hC文档吗Q回{是否定的。以个h历ؓ例,需要另Z个格式文件说明各个标记的昄方式Q其内容如下Q假设文件名为resume.cssQ:

resume {  display :  block ; }
name
{  display :  block ;  font-size : 120% ; }
sex
{  display : block ;  text-indent : 2em }
birthday
{  display : block ;  text-indent : 2em }
skill
{  display : block ;  text-indent : 2em }

说明Q?/p>

  以上均ؓCSS样式Q徏议读者参考有兌料熟悉CSSQ在以后学习中必ȝ刎ͼ此处׃幅关系不作介绍。徏立文件resume.css后,在个人简?xml文g的第一行后d以下文字Q?br />

<? xml-stylesheet type="text/css" href="resume.css" ?>
o_xsl_3.JPG

说明Q?/p>

  此处表示引用一个外部CSS样式文gQ其中type规定样式cdQ可取gؓtext/css或text/xslQ,href规定文g路径?/p>

  保存文gQ再以IE5.0打开文g。怎么P格式有些不一样吧。好象还不o人满意,文档内容是清CQ但昄效果比HTML~写的文档就差得多了QXML~写的文档就只能以这U方式显C吗Q!

提示Q?/p>

  1. Z更好的理解与掌握XMLQ徏议大家熟悉HTML 4.0与CSS 2.0语法Q掌握JavaScript、VBscript中至一U;~程l验、对数据库理ZSQL的了解均能大家在学习XML时获益?/p>

  2. XML文档中标记必L对出玎ͼ如果是空标记也必L前加"/"的同名标记结束,或用此U文?lt;xml_mark/>表示I标记?/p>

  3. XML以及下面要介绍的XSL文档Q属性值必ȝ双引P"Q或单引P’)括v来?/p>

  4. XML文档必须是良构的QXSL文档也是XML文档中一U)Q也是说标记必Ll束标记、标记可以嵌套但不可交叉Q如Q?br />

<outer><inner></inner><inner/></outer>

是合法的Q而下面的形式

<outer><inner></outer></inner>

则是错误的。如果XML文档在浏览时出错Q多半是q反了上面提到的规则?br />



~程之道 2006-09-14 10:45 发表评论
]]>
phpcms 3.0 url伪静态构造设|教E(apache和IISQ?/title><link>http://www.shnenglu.com/ispfcn/archive/2006/09/05/12047.html</link><dc:creator>~程之道</dc:creator><author>~程之道</author><pubDate>Tue, 05 Sep 2006 09:40:00 GMT</pubDate><guid>http://www.shnenglu.com/ispfcn/archive/2006/09/05/12047.html</guid><wfw:comment>http://www.shnenglu.com/ispfcn/comments/12047.html</wfw:comment><comments>http://www.shnenglu.com/ispfcn/archive/2006/09/05/12047.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ispfcn/comments/commentRss/12047.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ispfcn/services/trackbacks/12047.html</trackback:ping><description><![CDATA[ <span style="FONT-SIZE: 12px">phpcms 3.0提供按频道设|是否生?html 的功能,当设|ؓ不生成html时可以进行url静态化构造,以便于搜索收录?br />例如Q?/article/list-1-5.html<br /><br />那么我们如何q行I间讄呢?下面分别讲解apache和iis服务器环境下的配|方法:<br /><br />Q?QApache环境下的配置<br /><br />请首先咨询您的空间服务商Q空间是否支?Rewrite 以及是否支持对站点目录中 .htaccess 的文件解析,否则即便按照下面的方法设|好了,也无法用。(需要服务器支持Apache的Mod_Rewrite功能Q?br /><br /><br /><br /><br />以下代码保存ؓ.htaccess q上传到|站目录?br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #008000">#</span><span style="COLOR: #008000">  RewriteEngine 模式打开</span><span style="COLOR: #008000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">RewriteEngine On<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000"> 修改以下语句中的 / Z的网站目录地址Q如果程序放在二U目录中Q如/phpcms 请将 / 修改为?phpcms</span><span style="COLOR: #008000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">RewriteBase </span><span style="COLOR: #000000">/</span><span style="COLOR: #000000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000"> Rewrite pȝ规则请勿修改</span><span style="COLOR: #008000"><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">RewriteRule </span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">.*</span><span style="COLOR: #000000">)show</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">([</span><span style="COLOR: #800000">0</span><span style="COLOR: #000000">-</span><span style="COLOR: #800000">9</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">([</span><span style="COLOR: #800000">0</span><span style="COLOR: #000000">-</span><span style="COLOR: #800000">9</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">\.</span><span style="COLOR: #000000">html$ $</span><span style="COLOR: #800000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">show</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">php</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">itemid</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">$</span><span style="COLOR: #800000">2</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">page</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">$</span><span style="COLOR: #800000">3</span><span style="COLOR: #000000">  <br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />RewriteRule </span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">.*</span><span style="COLOR: #000000">)list</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">([</span><span style="COLOR: #800000">0</span><span style="COLOR: #000000">-</span><span style="COLOR: #800000">9</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">([</span><span style="COLOR: #800000">0</span><span style="COLOR: #000000">-</span><span style="COLOR: #800000">9</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">\.</span><span style="COLOR: #000000">html$ $</span><span style="COLOR: #800000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">list</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">php</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">catid</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">$</span><span style="COLOR: #800000">2</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">page</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">$</span><span style="COLOR: #800000">3</span><span style="COLOR: #000000">  <br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />RewriteRule </span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">.*</span><span style="COLOR: #000000">)show</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">([</span><span style="COLOR: #800000">0</span><span style="COLOR: #000000">-</span><span style="COLOR: #800000">9</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">\.</span><span style="COLOR: #000000">html$ $</span><span style="COLOR: #800000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">show</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">php</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">specialid</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">$</span><span style="COLOR: #800000">2</span></div></span> <font size="2">或者直接用q个附g解压后传到网站目录下<br /><br />如果E序攑֜二目录中,?phpcms 按文件中注释修改<br /><br /><br />最后在频道讄中将<br />生成HTML方式设ؓ:  不生?br />URL静态化选项设ؓ:   构造的URLcM?./list-1-5.html<br />生成文g的扩展名选项设ؓ:   html<br /><br />文g下蝲地址Q?/font> <a target="_blank"> <font color="#003366" size="2">http://bbs.phpcms.cn/attachment.php?aid=1192</font> </a> <br /> <br /> <br /> <font size="2">Q?QIIS服务器环境下的配|方?br /><br />首先请下载以下附? IIS Rewrite模块<br /><br />其中httpd.ini为配|文件内容如?</font> <br /> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">[ISAPI_Rewrite]<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span> <span style="COLOR: #008000">#</span> <span style="COLOR: #008000"> 3600 = 1 hour</span> <span style="COLOR: #008000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #000000">CacheClockRate </span> <span style="COLOR: #800000">3600</span> <span style="COLOR: #000000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />RepeatLimit </span> <span style="COLOR: #800000">32</span> <span style="COLOR: #000000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #008000">#</span> <span style="COLOR: #008000"> Protect httpd.ini and httpd.parse.errors files<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /># from accessing through HTTP<br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /># Rewrite pȝ规则请勿修改 PHPCMS3.0</span> <span style="COLOR: #008000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #000000">RewriteRule </span> <span style="COLOR: #000000">^</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #000000">.*</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">/</span> <span style="COLOR: #000000">show</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">([</span> <span style="COLOR: #800000">0</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #800000">9</span> <span style="COLOR: #000000">]</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">([</span> <span style="COLOR: #800000">0</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #800000">9</span> <span style="COLOR: #000000">]</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">\.</span> <span style="COLOR: #000000">html$ $</span> <span style="COLOR: #800000">1</span> <span style="COLOR: #000000">/</span> <span style="COLOR: #000000">show</span> <span style="COLOR: #000000">\.</span> <span style="COLOR: #000000">php</span> <span style="COLOR: #000000">\?</span> <span style="COLOR: #000000">itemid</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">$</span> <span style="COLOR: #800000">2</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">page</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">$</span> <span style="COLOR: #800000">3</span> <span style="COLOR: #000000">  <br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />RewriteRule </span> <span style="COLOR: #000000">^</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #000000">.*</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">/</span> <span style="COLOR: #000000">list</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">([</span> <span style="COLOR: #800000">0</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #800000">9</span> <span style="COLOR: #000000">]</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">([</span> <span style="COLOR: #800000">0</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #800000">9</span> <span style="COLOR: #000000">]</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">\.</span> <span style="COLOR: #000000">html$ $</span> <span style="COLOR: #800000">1</span> <span style="COLOR: #000000">/</span> <span style="COLOR: #000000">list</span> <span style="COLOR: #000000">\.</span> <span style="COLOR: #000000">php</span> <span style="COLOR: #000000">\?</span> <span style="COLOR: #000000">catid</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">$</span> <span style="COLOR: #800000">2</span> <span style="COLOR: #000000">&</span> <span style="COLOR: #000000">page</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">$</span> <span style="COLOR: #800000">3</span> <span style="COLOR: #000000">  <br /><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />RewriteRule </span> <span style="COLOR: #000000">^</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #000000">.*</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">/</span> <span style="COLOR: #000000">show</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #000000">([</span> <span style="COLOR: #800000">0</span> <span style="COLOR: #000000">-</span> <span style="COLOR: #800000">9</span> <span style="COLOR: #000000">]</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">)</span> <span style="COLOR: #000000">\.</span> <span style="COLOR: #000000">html$ $</span> <span style="COLOR: #800000">1</span> <span style="COLOR: #000000">/</span> <span style="COLOR: #000000">show</span> <span style="COLOR: #000000">\.</span> <span style="COLOR: #000000">php</span> <span style="COLOR: #000000">\?</span> <span style="COLOR: #000000">specialid</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">$</span> <span style="COLOR: #800000">2</span> <span style="COLOR: #000000"> <br /> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> </div>其解压CQ意目?? C:\Rewrite<br /><br />打开“控刉李솒理工具↺IS信息服务理器→|站→您的站点→属性”。在“ISAPI{选器”项点击 “添加”, {选器名称填入RewriteQ可执行文g为C:\Rewrite\Rewrite.dll (如果您解压到其它目录请填入相应地址)<br /><br />重新启动IIS或重启计机<br /><br /><br />最后在频道讄中将<br />生成HTML方式设ؓ:  不生?br />URL静态化选项设ؓ:   构造的URLcM?./list-1-5.html<br />生成文g的扩展名选项设ؓ:   html<br /><br />文g下蝲地址Q?a target="_blank"><font color="#003366">http://bbs.phpcms.cn/attachment.php?aid=1262</font></a><br /><br />原文地址Q?br /><br />http://bbs.phpcms.cn/thread-9693-1-1.html<br />http://bbs.phpcms.cn/thread-9952-1-1.html<br /><img src ="http://www.shnenglu.com/ispfcn/aggbug/12047.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ispfcn/" target="_blank">~程之道</a> 2006-09-05 17:40 <a href="http://www.shnenglu.com/ispfcn/archive/2006/09/05/12047.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse+PHPEclipse+ Subversion+ TortoiseSVN http://www.shnenglu.com/ispfcn/archive/2006/04/04/4977.html~程之道~程之道Tue, 04 Apr 2006 03:05:00 GMThttp://www.shnenglu.com/ispfcn/archive/2006/04/04/4977.htmlhttp://www.shnenglu.com/ispfcn/comments/4977.htmlhttp://www.shnenglu.com/ispfcn/archive/2006/04/04/4977.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/4977.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/4977.html贴几个有用的链接Q?br />

Debugging techniques for PHP programmers

?Subversion 构徏版本控制环境

PHPEclipse官方站点

Subversion快速入门教E?/a>

Subclipse插g

Subversion官方|站

TortoiseSVN官方|站


~程之道 2006-04-04 11:05 发表评论
]]>
Zend Framework 手册中文版[q蝲]http://www.shnenglu.com/ispfcn/archive/2006/04/04/4976.html~程之道~程之道Tue, 04 Apr 2006 03:04:00 GMThttp://www.shnenglu.com/ispfcn/archive/2006/04/04/4976.htmlhttp://www.shnenglu.com/ispfcn/comments/4976.htmlhttp://www.shnenglu.com/ispfcn/archive/2006/04/04/4976.html#Feedback1http://www.shnenglu.com/ispfcn/comments/commentRss/4976.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/4976.htmlsmile.gif

译的\U是按我自己的的兴趣来安排的呵呵QZF提供的那些类库,不一定会全部一一说明Q因为我觉得大家可能都有自己的类库,不一定要用ZF的。主要还是看看它的框架?br />
目前打算在这个版块和我的Blog上同步更斎ͼ{全部完成后Q打包成chm文档提供下蝲?br />
如果谁有兴趣参与Q非常欢q,请与我联p?br />msn & emailQhaohappy at msn.com (at->@)
W一? Zend

目录

1.1. ?br />1.2. Zend::loadFile()
1.3. Zend::loadClass()
1.4. Zend::loadInterface()
1.5. Zend::isReadable()
1.6. Zend::dump()
1.7. Zend::register()
1.8. Zend::registry()

1.1.?br />
ZendcLZend Framework的基c,之所以有q个cLZ使Zend Framework遵@DRY原则QDon't Repeat YourselfQ。这个类只包含静态方法,q些cL法具有Zend Framework中的很多lg都需要的功能?br />1.2. Zend::loadFile()

Zend::loadFile()用来包含PHP文g。它其实是将PHP的include()函数装而成的一个静态方法。当包含文gp|Ӟ会抛出异?Zend_ExceptionQ见后面--Haohappy??br />
1loadFile($filename, $dirs=null, $once=false
2    
3参数Q 文Ӟ目录(路径)Q是否只包含一ơ?/span>
$filename参数指定需要加载的文gQ注?filename不需要指定Q何\径,只需要文件名卛_。ZF会对文g作安全性检查?filename只能由字母,数字Q连接符-,下划U_及英文句?l成(半角)?dir则不限,可以使用中文{?br />
$dirs参数用来指定文g所在目录,如果为空Q则E序会到系l的include_path下寻找文件是否存在(include_path可在php.ini中设|?-Haohappy注)

$once参数为布类型,只能是true或falseQ两者区别就和include()和include_once()的区别一栗?
1.3. Zend::loadClass()

Zend::loadClass()用来加蝲一个PHPcLӞq个文g的文件名必须和文件中的类同名。loadClass()会检查文件中的类是否存在。如果文件中的类不存在,那么׃抛出一个Zend_Exception异常?br />
(例:TestClass.php中有个类TestClassQ用Zend::loadClass("TestClass")可加蝲q个c,q种作法cM于Java-- Haohappy?
1loadClass($class, $dirs
2参数Q 类Q目?/span>
如果没有指定$dirs参数Q而文件名中存在下划线Q那么loadClass()会自动把下划U当成目录分隔符Q去相应的目录中L找文件?br />
例如QloadClass("Zend_Example_Class") 没指?dirs参数 Q则 loadClass()会自动到Zend/Example/目录下去查找Class.php文g
1.4. Zend::loadInterface()

Zend::loadInterface()和Zend::loadClass()的用法是一LQ区别在于loadInterface()是用来加载接口。Zend::loadClass() 不能用来加蝲接口Q因为PHP函数class_exists()不能查Interface是否存在QPHP 5.0.2之前版本Q,所以需要用Zend::loadInterface()来代ѝ?br />
1loadInterface($interface, $dirs)
同样Q如果你没有指定目录Q但是文件中含有下划U_QZend::loadInterface()也会自动到相应目录去L文gQ这和Zend::loadClass()是一L?

1.5. Zend::isReadable()

判定某个文g是否可读Q可dq回trueQ否则返回false?br />
1isReadable($filename)
q个Ҏ是将PHP函数is_readable()装而成的, is_readable()不会自动查找include_path下的文gQ而Zend::isReadable()可以?

1.6. Zend::dump()

Zend::dump()打印和返回某个表辑ּ或变量的信息。它是将var_dump()装而成的。它默认带上?br />(X)HTML?lt;pre>标签Q输出更美观?br />
1dump($var, $label=null, $echo=true)
$label标签参数是用来加在输Z息之前的一D|本?br />
(q非常有用,例如你一ơ要查看多个变量的信息,你可以ؓ不同变量讄不同labelQ如“user”,“password”等{,q样不会弄ؕ--Haohappy?

dump()Mq回信息Q但不一定会输出Q这取决?echo参数Q指定是否要信息输出到屏幕?

1.7. Zend::register()

注册一个对?br />
1register($name, $object)
ZendFramework?注册?是一个提供单件对?singleton instances)l应用程序的机制. 通过注册一个对?你可以在你需要时再取得这个对?

$name是对象名U?指定后你可以通过$name来访问这个对?

$name参数必须是一个字W串。在注册库中只能存储对象Q对象将不会被删除,而一个对象只能有一个实例。 如果不符合这几个条gQ就会抛Z个Zend_Exception异常?

1.8. Zend::registry()

在“对象注册表”中q回一个对象,或者列出所有已l注册的对象
1registry($name=null)
如果$name参数为空Q会q回一个数l,key为对象名Uͼvalue为对象的cdU?br />
如果$name参数为字W串Q将q回相应的对象。如果对象不存在Q抛出Zend_Exception异常?

~程之道 2006-04-04 11:04 发表评论
]]>
PHP5中的SOAP扩展的应用及注意的问?/title><link>http://www.shnenglu.com/ispfcn/archive/2006/04/04/4975.html</link><dc:creator>~程之道</dc:creator><author>~程之道</author><pubDate>Tue, 04 Apr 2006 03:03:00 GMT</pubDate><guid>http://www.shnenglu.com/ispfcn/archive/2006/04/04/4975.html</guid><wfw:comment>http://www.shnenglu.com/ispfcn/comments/4975.html</wfw:comment><comments>http://www.shnenglu.com/ispfcn/archive/2006/04/04/4975.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ispfcn/comments/commentRss/4975.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ispfcn/services/trackbacks/4975.html</trackback:ping><description><![CDATA[ <p>既然说到SOAP先对这个有个大概了解吧?/p> <p>SOAPQ简单对象访问协议)定义了客h与服务器之间传递的消息。消息采?XML 格式。SOAP 独立于^台、编E语a、网l和传输层?/p> <p>q次做的目中需要提供WebService服务Q没话说Q由于是PHP的项目,首先按照习惯用了NuSOAPQ结果让我郁闷了好久Q程序返回的是一个数l,但是用print_r()打印出来是空的,用count()看了一下大ؓ1Q郁闷ing。看了一下response数据是存在的啊。又对照了一下以前做的SOAPQ是在PHP4上的Q,两个response有点不同Q这才反应过来是PHP5跟PHP4的版本不一栗?/p> <p>打开php.iniQ找到扩展模块那部分Q把soap的模块加载上Q又重新写了一下Server端和Client端,l箋试。L出现“looks like we got no XML document”的error。难道是用法错了Q手头正好有本《PHP5 Power Programming》找到SOAP的地方,没找到问题,又跑到zend的官方网站上看了一下SOAP的介l和CZQ?a ><font color="#666666">http://www.zend.com/php5/articles/php5-SOAP.php?out=dynamicwebpages</font></a>Q,没错啊。去Google搜烦q个错误Q最后还是连Czend的一个blog上(<a ><font color="#666666">http://www.zend.com/php5/articles/php5-SOAP.php?article=php5-SOAP&kind=php5&id=5085&open=1&anc=0&view=1</font></a>Q,前半部分跟上面那个是一LQ直接蟩q,看下面的CommentQ发现好多h都遇Cq个问题Qh提到是在PHP开始标{之前存在blank characterQ可我的没有啊,我的有个require_once("mainfile.php")Q把q句注释掉以后就没问题了Q又l箋Ҏmainfile.phpq踪下去Q发现是在类的文件中PHPl束标签之后有blank characterQ删除掉没问题了?/p> <p>在zend上的comments里还有h提到是XML文g的编码问题,q个我没有测试。终于搞定了q个问题Ql写接口Q哎…?/p> <p>郁闷本来x全部代码贴上来,l果排版会有问题Q还是脓些重要的吧!</p> <p>Server端:<br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <span style="COLOR: #008080">1</span> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #800080">$web_service</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> SoapServer(</span> <span style="COLOR: #0000ff">null</span> <span style="COLOR: #000000">,</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">array</span> <span style="COLOR: #000000">(</span> <span style="COLOR: #000000">'</span> <span style="COLOR: #000000">uri</span> <span style="COLOR: #000000">'</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">=></span> <span style="COLOR: #000000"> </span> <span style="COLOR: #000000">'</span> <span style="COLOR: #000000">ispfcn</span> <span style="COLOR: #000000">'</span> <span style="COLOR: #000000">,</span> <span style="COLOR: #000000">'</span> <span style="COLOR: #000000">encoding</span> <span style="COLOR: #000000">'</span> <span style="COLOR: #000000">=></span> <span style="COLOR: #000000">'</span> <span style="COLOR: #000000">gb2312</span> <span style="COLOR: #000000">'</span> <span style="COLOR: #000000">)); <br /></span> <span style="COLOR: #008080">2</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #800080">$web_service</span> <span style="COLOR: #000000">-></span> <span style="COLOR: #000000">addFunction(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">iGetUserList</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /></span> <span style="COLOR: #008080">3</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #800080">$web_service</span> <span style="COLOR: #000000">-></span> <span style="COLOR: #000000">addFunction(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">iRegisterUser</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /></span> <span style="COLOR: #008080">4</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #800080">$web_service</span> <span style="COLOR: #000000">-></span> <span style="COLOR: #000000">addFunction(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">iSetUserPwd</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /></span> <span style="COLOR: #008080">5</span> <span style="COLOR: #000000"> <img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /> </span> <span style="COLOR: #800080">$web_service</span> <span style="COLOR: #000000">-></span> <span style="COLOR: #000000">handle();</span> </div> <br />Client端:<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> {<br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #800080">$opts</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">array</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">location</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=></span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">http://192.168.0.56/web_service.php</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">uri</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">=></span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">ispfcn</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">encoding</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">=></span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">gb2312</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #800080">$client</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> SoapClient(</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">,</span><span style="COLOR: #800080">$opts</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #800080">$custom_id</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #800080">$custom_name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">system</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #800080">$custom_pwd</span><span style="COLOR: #000000">=</span><span style="COLOR: #008080">md5</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">system</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #800080">$custom_flag</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sys</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #800080">$start</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #800080">$limit</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #800080">$client</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">iGetUserList(</span><span style="COLOR: #800080">$custom_id</span><span style="COLOR: #000000">,</span><span style="COLOR: #800080">$custom_name</span><span style="COLOR: #000000">,</span><span style="COLOR: #800080">$custom_pwd</span><span style="COLOR: #000000">,</span><span style="COLOR: #800080">$custom_flag</span><span style="COLOR: #000000">,</span><span style="COLOR: #800080">$start</span><span style="COLOR: #000000">,</span><span style="COLOR: #800080">$limit</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (</span><span style="COLOR: #800080">$i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;</span><span style="COLOR: #800080">$i</span><span style="COLOR: #000000"><</span><span style="COLOR: #008080">count</span><span style="COLOR: #000000">(</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">);</span><span style="COLOR: #800080">$i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">){<br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff">echo</span><span style="COLOR: #000000"> </span><span style="COLOR: #008080">sprintf</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%4d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">[</span><span style="COLOR: #800080">$i</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">user_id</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">])</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">.</span><span style="COLOR: #800080">$result</span><span style="COLOR: #000000">[</span><span style="COLOR: #800080">$i</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">username</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />    }<br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}<br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (SoapFault </span><span style="COLOR: #800080">$e</span><span style="COLOR: #000000">)<br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />{<br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">echo</span><span style="COLOR: #000000"> </span><span style="COLOR: #800080">$e</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">faultcode</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">.</span><span style="COLOR: #800080">$e</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">faultstring</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" align="top" />}</span></div><img src ="http://www.shnenglu.com/ispfcn/aggbug/4975.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ispfcn/" target="_blank">~程之道</a> 2006-04-04 11:03 <a href="http://www.shnenglu.com/ispfcn/archive/2006/04/04/4975.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.cad77.cn" target="_blank">þþƷҹҹŷ</a>| <a href="http://www.ezhekou.cn" target="_blank">ŷҹͽþþ</a>| <a href="http://www.ogpx95.cn" target="_blank">þѹƷ</a>| <a href="http://www.asjnjxzz.cn" target="_blank">ɫۺϾþۺ</a>| <a href="http://www.tgbnews.cn" target="_blank">޾ƷþþþĻһڣ</a>| <a href="http://www.msve.cn" target="_blank">һþöAV </a>| <a href="http://www.xyjsj88.com.cn" target="_blank">þ99Ʒ</a>| <a href="http://www.vyfx.cn" target="_blank">þ91ۺϹ91þþƷ</a>| <a href="http://www.d8950.cn" target="_blank">91þùۺϾƷ</a>| <a href="http://www.9746.com.cn" target="_blank">þþþùƷŮӰԺ</a>| <a href="http://www.top119.cn" target="_blank">þþƷĻ鶹 </a>| <a href="http://www.iteethle.cn" target="_blank">޹þþþƷ</a>| <a href="http://www.snryw.cn" target="_blank">2021ھþþƷ</a>| <a href="http://www.spurr.cn" target="_blank">69Ʒþþþþ޾Ʒ</a>| <a href="http://www.laobianjing.cn" target="_blank">ۺϾþҹAV </a>| <a href="http://www.dntjj.cn" target="_blank"> þ Ʒ</a>| <a href="http://www.hgnulb.cn" target="_blank">Ļþۺ</a>| <a href="http://www.aiucv.cn" target="_blank">޹ŷۺ997þ</a>| <a href="http://www.lzjrdfl.cn" target="_blank">þ˽˹Ʒ</a>| <a href="http://www.vip910.cn" target="_blank">ھƷþþþӰԺһ </a>| <a href="http://www.qxmobile.cn" target="_blank">˺ݺۺϾþ</a>| <a href="http://www.i231.cn" target="_blank">˾Ʒþ޸岻 ˾Ʒþ޸岻 ˾Ʒþ </a>| <a href="http://www.nutiao.cn" target="_blank">ŷ츾XXXXԾþþ </a>| <a href="http://www.orange-cat.cn" target="_blank">þۺϾþۺϾþۺ</a>| <a href="http://www.shinehall.cn" target="_blank">þۺĻ</a>| <a href="http://www.jfhtgj.cn" target="_blank">þþùҺ</a>| <a href="http://www.qj119.cn" target="_blank">þùɫavѿ</a>| <a href="http://www.1104f.cn" target="_blank">99þerֻоƷ18</a>| <a href="http://www.haibin860313.com.cn" target="_blank">AëƬþ</a>| <a href="http://www.ceovod.cn" target="_blank">91þþþþþ</a>| <a href="http://www.ramar.com.cn" target="_blank">þۺϾɫۺŷȥ</a>| <a href="http://www.nicemom.cn" target="_blank">99ƷþþƷһ</a>| <a href="http://www.hzf89.cn" target="_blank">ž99Ʒþþþþ</a>| <a href="http://www.baby-bib.cn" target="_blank">þۺϾɫۺŷȥ</a>| <a href="http://www.jsxtcmss.cn" target="_blank">պ޾Ʒþ </a>| <a href="http://www.78cbg.cn" target="_blank">þþþۺϹŷһ</a>| <a href="http://www.jfjn.net.cn" target="_blank">һaƬþëƬëƬ</a>| <a href="http://www.mytsy.cn" target="_blank">þˬˬAV</a>| <a href="http://www.23d6.cn" target="_blank">þòþüӰԺwwwձ</a>| <a href="http://www.hvnm.cn" target="_blank">þþƷ99Ʒ</a>| <a href="http://www.touzhi8.cn" target="_blank">ݺɫݺݺݺݺɫۺϾþ </a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>