精华内容
下载资源
问答
  • LiquidXMLStudio映射XML到C++代码

    人类社会,据马克思所说,三要素:

    生产力,生产关系和财富再分配。


    虽然说,总体来说,我个人认为,财富再分配,是核心是重,但对于吊丝来说,还是关注一下生产力吧。至于爸爸是李刚刚的,考虑一下基它的吧。


    生产力的核心,就是工具。


    所以,做为一个程序员,掌握工具,是很重要的。以前我招人,也是理论和工具并重。一个不注重工具的人,往往是一个不注重实践的人。赵括理论还不错,但打起仗来,就不成。其中一个原因,就是实践不够,或是不重视实践。


    这里我总结一下我自己的心理。如果你不幸进来看到我写的文字,先忍一下我的罗索吧。


    XML的工具,最近我用了用,几个XMLSpy和LiquidXMLStudio是主要用的两种。

    ********************

    Let's Start:

    先看一个网页:

    http://en.wikipedia.org/wiki/Comparison_of_XML_editors

    这也是我的习惯。

    不过这里面的列,不是很全。

    我是希望有几个方面:

    * 能生成C++代码,这个功能在这里被称做:map。map的意思是说从xsd映射到代码。当然,也有其它的含义,但一般不会用map,比如xml to xml, xml to DB. 都会写清楚,但只有map,现在看来就是这个意思。之所以,要生成C或C++代码,是因为我底层的解析器就是用C写的。不想在这个层面来转换。

    因为XML本身,才是接口信息的承载。没必要,再加入一种新语言。

    * 如果生成的代码,是基于开源的XML库就更好的。

    目前来看,经过调研,目前最好的XML开源库,就是libxml2和xerces. 不过,总体来说,如果我自己来做,会选libxml2.

    因为这个库是基于C的,也便于跨平台。

    * 其它的XML自动化编辑工具。这些就不用说了。


    但事实上,没有找到达到这种要求的编辑器。


    除XMLSpy 和 LiquidXMLStudio 以外,发现还有两个比较强大,其实,哪个强大,你只需要在这里看看哪个最贵就可以了。

    http://en.wikipedia.org/wiki/Comparison_of_XML_editors


    不过,我是没看懂,为什么有的那么贵。看来,程序员,总是站在程序员的角度来看世界,里面最贵的MadCap Flare,比LiquidXMLStudio贵了一个量级。

    好象MadCap FlareXMLSeedXML Schema Editor

    类似,都是用于非程序员的。他们贵的原因,都是因为真真正正在用XML的含义:完备性的文档(不是程序员的叫法:可扩展性ML)。是给不是程序员的人用的,看来也说明,程序员普遍都是吊丝。外国可能也是如此。


    哈。吊丝们都回回神,不多说了,所以关注点来是回到XMLSpy 和 LiquidXMLStudio。(为什么我用吊丝?因为QQ拼音,因为高大上的原因,打不出来这个词)。

    让我吃惊的是,XMLSpy好贵。快赶上非程序员用的。

    但,我这没有最新版的2014,据说也是可以完成XML到C++的MAP.


    所以,只用到了LiquidXMLStudio。

    LiquidXMLStudio 可以映射各种语言,只是我用到了C++。


    至于如何操作,我不写了,看这个页面:

    http://www.liquid-technologies.com/Liquid-Products/LearnAbout/XmlDataBinding.aspx


    没有被墙。


    忘了说,这是我最关注的一个要点

    * 没有被墙。

    下一个,当然是,有D版的。

    然后,最好有vs 2003以下版本的。能在XP运行的。


    以上就是我的要求。

    ***********************************************************************

    经过调研,没有达到要求的,暂时。

    但xmlstudio2011 最合适,因为有破解,可以生成C++代码。

    用的虽然不是开源的XML库,但也够用了。

    ***********************************************************************

    以下是示例代码,最关键是这几句

    		BookStoreLib::CBookstorePtr spBS = BookStoreLib::CBookstore::CreateInstance();
    		BookStoreLib::CBookTypePtr spBook = spBS->GetBook()->Add();
    		spBook->SetTitle(_T("The Autobiography of Benjamin Franklin"));
    		spBook->SetPrice(8.99);
    		spBook->SetPublicationdate(LtXmlLib12::CDateTime(1981, 5, 11));
    		spBook->SetISBN(_T("1-861003-11-0"));
    		spBook->GetAuthor()->SetFirst_name(_T("Benjamin"));
    		spBook->GetAuthor()->SetLast_name(_T("Franklin"));
    		spBook->SetGenre(_T("autobiography"));
    		std::tstring strXml = spBook->ToXml();

    1. 打开一个XSD,然后:打开向导:

    2. 选择C++语言


    3. 可以修改一些信息,可选



    4. 填加一个测试用的XML文件。

     

    5. OK 了,打开工程后

     


    6. 打开工程,进行一点编码。Liquid会自动创建一个chm帮助文档,这个我太喜欢了。

    照着下面这样,你就可以生成一个可以工作的例子了。

    对了,我所选的xml是在示例工程下面。

    D:\Program Files (x86)\Liquid Technologies\Liquid XML 2014\Examples\BookStore\Schemas\BookStore.xsd

    D:\Program Files (x86)\Liquid Technologies\Liquid XML 2014\Examples\BookStore\Data Files\BookStoreSample.xml



    **********************************************

    		// create an instance of the class to load the XML file into
    		bs::CBookstorePtr elm = bs::CBookstore::CreateInstance();
    
    		// load the xml from a file into the object (the root element in the
    		// xml document must be <bookstore>.
    		elm->FromXmlFile(lpctFilename);
    
    //--------<haoyujie>--------------
    		bs::CBookTypePtr spBook = elm->GetBookCol()->Add();
    		spBook->SetTitle(_T("The Autobiography of Benjamin Franklin"));
    		spBook->SetPrice(8.99);
    		spBook->SetPublicationdate(LtXmlLib12::CDateTime(1981, 5, 11));
    		spBook->SetISBN(_T("1-861003-11-0"));
    		spBook->GetAuthor()->SetFirst_name(_T("Benjamin"));
    		spBook->GetAuthor()->SetLast_name(_T("Franklin"));
    		spBook->SetGenre(_T("autobiography"));
    //--------</haoyujie>--------------


    *********************************************

    #include "stdafx.h" 
    #include "../BookStoreLib.h" 
    #include "../BookStoreLib/Bookstore.h" 
    
    using namespace LtXmlLib12;
    
    // forward declarations
    void SimpleTestBookStoreLibCBookstore(LPCTSTR);
    void WriteTest();
    void ReadTest();
    
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    int main(int argc, char* argv[])
    {
    	WriteTest();
    	ReadTest();
    
    	_tprintf(_T("\n\nPress a key to finish"));
    	getchar();
    
    	return 0;
    }
    		
    void WriteTest()
    {
    	try
    	{
    		_tprintf(_T("\nCreating an XML document...\n"));
    
    		// to create the XML document from scratch
    		BookStoreLib::CBookstorePtr spBS = BookStoreLib::CBookstore::CreateInstance();
    		BookStoreLib::CBookTypePtr spBook = spBS->GetBook()->Add();
    		spBook->SetTitle(_T("The Autobiography of Benjamin Franklin"));
    		spBook->SetPrice(8.99);
    		spBook->SetPublicationdate(LtXmlLib12::CDateTime(1981, 5, 11));
    		spBook->SetISBN(_T("1-861003-11-0"));
    		spBook->GetAuthor()->SetFirst_name(_T("Benjamin"));
    		spBook->GetAuthor()->SetLast_name(_T("Franklin"));
    		spBook->SetGenre(_T("autobiography"));
    		std::tstring strXml = spBook->ToXml();
    
    		_tprintf(_T("\nThis is the XML:\n%s"), strXml.c_str());
    	}
    	catch (CLtException& e)
    	{
    		// Note : exceptions are likely to contain inner exceptions
    		// that provide further detail about the error, GetFullMessage
    		// concatantes the messages from them all.
    		_tprintf(_T("Error - %s\n"), e.GetFullMessage().c_str());
    	}
    }
    
    void ReadTest()
    {
    	try
    	{
    		_tprintf(_T("\nReading an existing XML document...\n"));
    
    		// to create the XML document from scratch
    		BookStoreLib::CBookstorePtr spBS = BookStoreLib::CBookstore::CreateInstance();
    		spBS->FromXmlFile(_T("..\\..\\..\\BookStoreSample.xml"));
    
    		for (BookStoreLib::CBookTypeCol::iterator itr = spBS->GetBook()->begin();
    			 itr != spBS->GetBook()->end();
    			 itr++)
    		{
    			BookStoreLib::CBookTypePtr spBook = *itr;
    
    			_tprintf(_T("Book Title           %s\n"), spBook->GetTitle().c_str());
    			_tprintf(_T("    Price            %f\n"), spBook->GetPrice());
    			_tprintf(_T("    Author           %s %s\n"), spBook->GetAuthor()->GetFirst_name().c_str(), spBook->GetAuthor()->GetLast_name().c_str());
    			if (spBook->IsValidPublicationdate())
    				_tprintf(_T("    Publicationdate  %s\n"), spBook->GetPublicationdate().ToString().c_str());
    			else                    
    				_tprintf(_T("    Publicationdate  Not Listed\n"));
    			if (spBook->IsValidISBN())
    				_tprintf(_T("    ISBN             %s\n"), spBook->GetISBN().c_str());
    			else                    
    				_tprintf(_T("    ISBN             Not Listed\n"));
    			if (spBook->IsValidGenre())
    				_tprintf(_T("    Genre            %s\n"), spBook->GetGenre().c_str());
    			else                    
    				_tprintf(_T("    Genre            Not Listed\n"));
    		}
    	}
    	catch (CLtException& e)
    	{
    		// Note : exceptions are likely to contain inner exceptions
    		// that provide further detail about the error, GetFullMessage
    		// concatantes the messages from them all.
    		_tprintf(_T("Error - %s\n"), e.GetFullMessage().c_str());
    	}
    }
    
    
    
    
    
    

    展开全文
  • 网页报错代码

    千次阅读 2016-03-17 22:05:03
    网页报错代码

    100 Continue初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新) 

    101 Switching Protocols服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新) 

    102 Processing由于一个WebDAV请求可能包含多个涉及文件操作的子请求,可能花费很长的时间才能完成请求。这个状态码是指,服务器已经收到了请求,正在处理请  求,但是还没有任何响应。这防止客户端超时中断、以为请求丢失。

    103 checkpoint用于可恢复的请求建议,以恢复中止的PUT或POST请求。

    200OK 一切正常,对GET和POST请求的应答文档跟在后面。

    201 Created服务器已经创建了文档,Location头给出了它的URL。

    202 Accepted已经接受请求,但处理尚未完成。

    203 Non-Authoritative Information文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。

    204 No Content没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。

    205 Reset Content没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容(HTTP 1.1新)。

    206 Partial Content客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。

    207 Multi-Status随后的邮件正文是一个XML消息,可能包含许多单独的响应代码,这取决于有多少个子请求

    208 Already ReportedDAVbinding的成员在之前针对这个请求的答复中已经被列举,不再被计入

    226 IM Used服务器已执行了对资源的请求,响应代表了对当前实例执行的一个或多个实例处理的结果

    300 Multiple Choices客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明

    301 Moved Permanently客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL

    302 Found类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”

                            出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码

                            注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求http://host/~user:http://host/~user(缺少了后面的斜杠),有的服务器返回301,有的则返回302

                            严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307

    303 See Other类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取(HTTP 1.1新)

    304 Not Modified客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文     档还可以继续使用

    305 Use Proxy客户请求的文档应该通过Location头所指明的代理服务器提取(HTTP 1.1新)

    306 Switch Proxy该状态码不再被使用。最初意味着“后续请求应该使用指定的代理。

    307 Temporary Redirect和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时才  能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请  求;如果是307应答,则浏览器只能跟随对GET请求的重定向。(HTTP 1.1新)

    308 Permanent Redirect这个请求和以后的请求都应该使用另一个URI来重复。307和308与302和301的行为相似,但是不允许HTTP方法出现变化。所以比如说,向永久重  定向的资源提交表单会继续顺利执行。

    400 Bad Request请求出现语法错误。

    401 Unauthorized客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的     Authorization头后再次发出请求。

    402 Payment Required专门留给将来使用。初衷是,该状态码可用作某种数字现金或微支付方案的一部分,但是这种情形还没有出现,所以该状态码不常使用。如果某个开       发人员超出了每日限制的请求数量,Google Developers API就使用该状态。

    403 Forbidden资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。

    404 Not Found无法找到指定位置的资源。这也是一个常用的应答。

    405 Method Not Allowed请求方法(GET、POST、HEAD、Delete、PUT、TRACE等)对指定的资源不适用。(HTTP 1.1新)

    406 Not Acceptable指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容(HTTP 1.1新)。

    407 Proxy Authentication Required类似于401,表示客户必须先经过代理服务器的授权。(HTTP 1.1新)

    408 Request Timeout在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。(HTTP 1.1新)

    409 Conflict通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。(HTTP 1.1新)

    410 Gone所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知      的原因文档不可用。(HTTP 1.1新)

    411 Length Required服务器不能处理请求,除非客户发送一个Content-Length头。(HTTP 1.1新)

    412 Precondition Failed请求头中指定的一些前提条件失败(HTTP 1.1新)。

    413 Request Entity Too Large目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头(HTTP 1.1    新)。

    414 Request URI Too LongURI太长(HTTP 1.1新)。

    415 Unsupported Media Type请求实体的媒体类型不被服务器或资源支持。比如说,客户端上传image/svg+xml格式的图片,但是服务器需要图片使用一种不同的格式。

    416 Requested Range Not Satisfiable服务器不能满足客户在请求中指定的Range头。(HTTP 1.1新)

    417 Expectation Failed服务器无法满足Expect(期望)请求头字段的要求。

    418 I'm a teapot1998年定义的这个代码是传统的IETF愚人节笑话之一,在RFC2324:超文本咖啡壶控制协议(Hyper Text Coffee PotControl Protocol)中予以定义,但是          没有打算由实际的HTTP服务器来实施。RFC指定该状态码应该由请求的茶壶返回给现煮咖啡。该HTTP状态码用于一些网站中的复活节彩蛋,包括Google.com。

    419 Authentication Timeout419 Authentication Timeout不是HTTP标准的一部分,它表示以前有效的验证已到期失效。它用作替代401 Unauthorized的状态码,目的是为了有别于被拒绝访问特定服务器资源的以其他方式验证的客户端。

    421 Misdirected Request请求被指向到无法生成响应的服务器(比如由于连接重复使用)。

    422 Unprocessable Entity请求符合规范,但是由于语法错误,无法得到后续处理。

    423 Locked访问的资源被锁定。

    424 Failed Dependency请求因上一个请求失败而失败(比如PROPPATCH)。

    426 Upgrade Required客户端应该换成不同的协议,比如TLS/1.0,该协议已在Upgrade(升级)头字段里指定。

    428 Precondition Required原始服务器需要请求有条件。旨在防止出现“‘丢失更新’问题:当客户端GET资源的状态、修改状态,又PUT回给服务器,同时第三方在服务器上      修改状态,导致冲突。”

    429 Too Many Requests用户在指定的时间里发送了太多的请求。用于与速率限制方案结合使用。

    431 Request Header Fields Too Large由于单个头字段或者全部头字段太大,服务器不愿意处理请求。

    451 Unavailable For Legal Reasons在因特网草案“用于法律限制的资源的新HTTP状态码”中予以定义。旨在因法律原因而拒绝访问资源时使用,比如审查制度或政府要求的      禁止访问。

    500 Internal Server Error服务器遇到了意料不到的情况,不能完成客户的请求。

    501 Not Implemented服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。

    502 Bad Gateway服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。

    503 Service Unavailable服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头。

    504 Gateway Timeout由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。(HTTP 1.1新)

    505 HTTP Version Not Supported服务器不支持请求中所指明的HTTP版本。(HTTP 1.1新)

    506 Variant Also Negotiates对请求进行透明的内容协商导致循环引用。

    507 Insufficient Storage服务器无法存储完成请求所必须的内容。

    508 Loop Detected服务器在处理请求时检测到一个无限循环。

    510 Not Extended需要请求有额外的扩展内容,服务器才能处理请求。

    511 Network Authentication Required客户端需要验证以获得网络访问权。原本用于拦截用来控制网络访问的代理(比如,“强制门户网站”用来要求先同意服务条款,之后   才授予通过无线热点全面访问互联网的权限)。

    非官方状态码

    下列状态码并不由任何RFC指定,但被第三方服务用来提供语义错误响应或充分利用REST的错误响应:

    420 Method Failure(Spring框架):方法失效后,Spring框架使用的废弃响应。

    420 Enhance Your Calm(Twitter):当客户端的速率受到限制时,TwitterSearch and Trends API的版本1返回该状态码;版本1.1及以后版本改而使用429 Too Many Requests响应码。

    450 Blocked by Windows Parental Controls(微软):微软扩展代码。当Windows Parental Controls被开启,阻止对特定网页的访问时,显示该错误。

    498 Invalid Token(Esri):ArcGIS forServer返回的状态码。状态码498表明到期的令牌或其他的无效令牌。

    499 Token Required(Esri):ArcGIS forServer返回的状态码。状态码499表明需要令牌,但是令牌未提交。

    509 Bandwidth Limit Exceeded(ApacheWeb Server/cPanel):服务器已超过由服务器管理员指定的带宽;这常常被共享主机托管提供商用来限制客户的带宽。
    展开全文
  • 网页html代码大全

    万次阅读 多人点赞 2018-02-23 13:53:39
    h1最大字,h6最小字 2.字体变化&lt;font&gt;..........&lt;/font&gt; 【1】字体大小&lt;font size=#&gt;..........&lt;/font&gt; #=1~7;数字愈大字也愈大【2】指定字型&...

    常用HTML代码解释

     

    一、文字

    1.标题文字<h#>..........</h#> #=1~6h1为最大字,h6为最小字

     

    2.字体变化<font>..........</font>

    1】字体大小<font size=#>..........</font> #=1~7;数字愈大字也愈大

    2】指定字型<font face="字体名称">..........</font>

    3】文字颜色<font color=#rrggbb>..........</font>

                  rr:表红色(red)色码

                  gg:表绿色(green)色码

                  bb:表蓝色(blue)色码

                  rrggbb也可用6位颜色代码数字

     

    3.显示小字体<small>..........</small>

     

    4.显示大字体<big>..........</big>

     

    5.粗体字<b>..........</b>

     

    6.斜体字<i>..........</i>

     

    7.打字机字体<tt>..........</tt>

     

    8.底线<u>..........</u>

     

    9.删除线<strike>..........</strike>

     

    10.下标字<sub>..........</sub>

     

    11.上标字<sup>..........</sup>

     

    12.文字闪烁效果<blink>..........</blink>

     

    13.换行(也称回车)<br>

     

    14.分段<p>

     

    15.文字的对齐方向<p align="#"> #号可为left:表向左对齐(预设值)center:表向中对齐right:表向右对齐P.S.<p align="#">之后的文字都会以所设的对齐方式显示,直到出现另一个<p align="#">改变其对齐方向,遇到<hr><h#>标签时会自动设回预设的向左对齐。

     

    16.分隔线<hr>

    1】分隔线的粗细<hr size=点数>

    2】分隔线的宽度<hr size=点数或百分比>

    3】分隔线对齐方向<hr align="#">

         #号可为left:表向左对齐(预设值)center:表向中对齐right:表向右对齐

    4】分隔线的颜色<hr color=#rrggbb>

    5】实心分隔线<hr noshade>

     

    17.居中对齐<center>..........</center>

     

    18.依原始样式显示<pre>..........</pre>

     

    19.<body>指令的属性

    1】背景颜色-- bgcolor <body bgcolor=#rrggbb>

    2】背景图案-- background <body  background="图形文件名">

    3】设定背景图案不会卷动-- bgproperties <body bgproperties=fixed>

    4】文件内容文字的颜色-- text <body text=#rrggbb>

    5】超连结文字颜色-- link <body link=#rrggbb>

    6】正被选取的超连结文字颜色-- vlink <body vlink=#rrggbb>

    7】已连结过的超连结文字颜色-- alink <body alink=#rrggbb>

     

    20.文字移动指令<MARQUEE>..........</MARQUEE>

         移动速度指令是:scrollAmount=#    #最小为1,速度为最慢;数字越大移动的越快。

         移动方向指令是:direction=#          up向上、down向下、left向左、right向右。     

         指令举例:<MARQUEE scrollAmount=3 direction=up>..........</MARQUEE>

     

    二、图片

    1.插入图片<img src="图形文件名">

     

    2.设定图框-- border <img src="图形文件名" border=点数>

     

    3.设定图形大小-- widthheight <img src="图形文件名" width=宽度点数height=高度点数>

     

    4.设定图形上下左右留空-- vspacehspace <img src="图形文件名" vspace=上下留空点数hspace=左右留空点数>

     

    5.图形附注<img src="图形文件名" alt="说明文字">

     

    6.预载图片

    <img src="高解析度图形文件名" lowsrc="低解析度图形文件名"> P.S.两个图的图形大小最好一致;

     

    7.影像地图(Image Map<img src="图形文件名" usemap="#图的名称"> <map name="图的名称">

    <area shape=形状coords=区域座标列表href="连结点之URL">

    <area shape=形状coords=区域座标列表href="连结点之URL">

    <area shape=形状coords=区域座标列表href="连结点之URL">

    <area shape=形状coords=区域座标列表href="连结点之URL"> </map>

    1】定义形状-- shape

    shape=rect:矩形shape=circle:圆形shape=poly:多边形

    2】定义区域-- coords

    a.矩形:必须使用四个数字,前两个数字为左上角座标,后两个数字为右下角座标

    例:<area shape=rect coords=100,50,200,75 href="URL">

    b.圆形:必须使用三个数字,前两个数字为圆心的座标,最后一个数字为半径长度

    例:<area shape=circle coords=85,155,30 href="URL">

    c.任意图形(多边形):将图形之每一转折点座标依序填入

    例:<area shape=poly coords=232,70,285,70,300,90,250,90,200,78 href="URL"

     

    三、表格相关

    1.表格标题

    <caption>..........</caption>

     

    表格标题位置 -- align

    <caption align="#"> #号可为top:表标题置于表格上方(预设值)

    bottom:表标题置于表格下方

     

    2.定义列<tr>

     

    3.定义栏位 《1<td>:靠左对齐

               2<th>:靠中对齐粗体

    1】水平位置-- align <th align="#">

                      #号可为left:向左对齐  center:向中对齐right:向右对齐

    2】垂直位置-- align <th align="#"> #号可为

                    top:向上对齐middle:向中对齐    bottom:向下对齐

    3】栏位宽度-- width     <th width=点数或百分比>

    4】栏位垂直合并-- rowspan    <th rowspan=欲合并栏位数>

    5】栏位横向合并-- colspan      <th colspan=欲合并栏位数>

     

    四、表格的主要属性

    1. <table>标记的主要属性

        align定义表格的对齐方式,有三个属性值centerleftright

        background定义表格的背景图案,属性值为图片的地址

        bgcolor定义表格的背景颜色,属性值是各种颜色代码

        border定义表格的边框宽度,属性值是数字

        bordercolor定义表格边框的颜色,属性值是各种颜色代码

        cellpadding定义单元格内容与单元格边框之间的距离,属性值是数字

        cellspacing定义表格中单元格之间的距离

        height定义表格的高度,属性值是数字

        width定义表格的宽度,属性值是数字

     

    2. <tr>标记,表格是由多行与多列组成的,<tr>标记用来定义表格的一行,他的属性极其属性值定义的是表格中的该行,其主要属性与属性值如下:

        align定义对齐方式,属性值与上同

        background定义背景图案bgcolor定义背景色

     

    3. <td>标记。用<td>标记概况起来的内容表示表格的单元。其主要属性与属性值和<table>标记的一样,补充两个合并列和行的代码:

        colspan定义合并表格的列数,属性值是数字

        rowspan定义合并表格的行数,属性值是数字

     

    五、FRAME

    1、分割视窗指令<frameset>..........</frameset>

    1】垂直(上下)分割-- rows

    <frameset rows=#> #号可为点数:

        如欲分割为100,200,300三个视窗,则<frameset rows=100,200,300>

        亦可以*号代表,如<frameset rows=*,500,*>

        百分比:如<frameset rows=30%,70%>,各项总和最好为100%;

    2】水平(左右)分割-- cols <frameset cols=点数或百分比>

     

    2、指定视窗内容-- <frame>

    <frameset cols=30%,70%> <frame> <frame> </frameset>

    1】指定视窗的文件名称-- src <frame src=HTML档名>

    2】定义视窗的名称-- name

    <frame name=视窗名称>

    3】设定文件与上下边框的距离-- marginheight

    <frame marginheight=点数>

    4】设定文件与左右边框的距离-- marginwidth

    <frame marginwidth=点数>

    5】设定分割视窗卷轴-- scrolling

    <frame scrolling=#> #号可为yes:固定出现卷轴

              no:不出现卷轴

              auto:自动判断文件大小需不需要卷轴(预设值)

    6】锁住分割视窗的大小-- noresize <frame noresize>

     

    六、歌曲代码:

        在这组代码中,不必管它是mms.http.rtsp,只要看尾缀是asfwmawmvwmvrm都可适用下面的代码:

     

    1.手动播放:

    <EMBED src=歌曲地址volume="100" width=39 height=18 hidden="FALSE" autostart="fault" type="audio/x-pn-realaudio-plugin" controls="PlayButton">

     

    2.打开页面自动播放:

    <EMBED src="歌曲地址" width="39" height="18" autostart="true" hidden="false" loop="infinite" align="middle" volume="100" type="audio/x-pn-realaudio-plugin" controls="PlayButton" autostart="true">

     

    ------------------------------------------------------------------

     

    套用代码:

     

    <div align="center">

     

    <table border="1" width="90%" height="403" background="背景图片地址">

     

    <tr><td width="80%" height="100%">

     

    <p align="center"><br><br><br>

     

    <font face="华文彩云" size="6" color="#FFFFFF">歌曲或音乐名称</font><br><br>

     

    <p align="center"><img src="图片地址"><br><br>

     

    <font color="#FFFFFF" size=3>介绍文字</font><br><br><br>

     

    <EMBED style="FILTER: xray()" src=音乐地址width=250 height=30 type=audio/x-ms-wma autostart="true" loop="-1"><br><br><br>

     

    </td></tr>

     

    </table>

     

    </div>

     

    简易套用代码详解:

     

    <div align="center">是定义帖子居中;

     

    <table border="1" width="90%" height="403" background="背景图片地址"><tr><td width="80%" height="100%">

     

    这其中的border="1"是定义表格边线的宽度,定义为0则无边线;width="90%" height="403"分别定义背景图表格的宽度和高度.如果背景图是一张大图,可以这样定义:width=图片宽度height=图片高度

     

    <p align="center"><br><br><br><font face="华文彩云" size="6" color="#FFFFFF">歌曲或音乐名称</font><br><br>

     

    <p align="center">是定义文字居中的,<br>是回行代码,加几个就会空几行。<font face="华文彩云" size="6" color="#FFFFFF">是定义文字属性的。face="华文彩云"是定义字体,你可以把字体换成隶书、宋体等。size="6"是定义字号的,数字越大字越大,如果不定义,默认是2号字。color="#FFFFFF"是定义字体颜色的。全部字体颜色的代码在妙手饰图区有人发过,你可以找来改。

     

    <p align="center"><img src="图片地址"><br><br><font color="#FFFFFF">介绍文字</font><br><br><br>

     

    第一个括号里的代码仍然是定义图片和文字居中的。<img src="图片地址">是插入图片代码。<font color="#FFFFFF" size=3>介绍文字</font>是定义这段文字的。如果想改变字拧痔濉值难丈烧瞻嵘厦嫖医驳亩ㄒ宸椒ā?/font>

     

    <EMBED style="FILTER: xray()" src=音乐地址width=250 height=30 type=audio/x-ms-wma autostart="true" loop="-1">

     

    这一段是插入播放器代码,因为我插的是特殊的播放器,style="FILTER: xray()"是特殊代码。“src=音乐地址是插入音乐文件的地址。width=250 height=30分别定义播放器的宽度和高度(如果把宽和高都设成零则为隐藏,并且只能自动播放)autostart="true" loop="-1"是定义音乐播放方式的,autostart="true"是设定手动或自动播放,“true”“1”是自动播放,“false”“0”是手动播放;loop="-1"是播放次数,“true”“1”表示重复播放,“false”“-1”“0”是只播放一次。

     

    <br><br><br></td></tr></table></div>回行代码和与前面对应的固定代码。

     

     

    <EMBED style="FILTER: xray()" src=音乐地址width=250 height=30 type=audio/x-ms-wma autostart="true" loop="-1">

     

    这一段是插入播放器代码,因为我插的是特殊的播放器,style="FILTER: xray()"是特殊代码。“src=音乐地址是插入音乐文件的地址。width=250 height=30分别定义播放器的宽度和高度(如果把宽和高都设成零则为隐藏,并且只能自动播放)autostart="true" loop="-1"是定义音乐播放方式的,autostart="true"是设定手动或自动播放,“true”“1”是自动播放,“false”“0”是手动播放;loop="-1"是播放次数,“true”“1”表示重复播放,“false”“-1”“0”是只播放一次。

     

    <br><br><br></td></tr></table></div>回行代码和与前面对应的固定代码。

     

    一:字体格式代码:

    1.字体标签 <font>文字内容</font>         a.字体大小:<font size=3>文字内容</font>  注:size取值范围是17,数字愈大字也愈大.

     b.指定字型:<font face="字体名称">文字内容</font>注:字体名称常用:宋体、黑体、楷体等(如果标上你电脑里没有的字体,则以电脑默认字体显示)         c.文字颜色:<font color=#000000>文字内容</font>   //000000是纯黑色,#ffffff是纯白色.注:关于彩色代码,可以利用联众论坛发贴编辑区里的修改文字颜色后来获取自己喜欢颜色的16进制代码。

    d.文字加粗:<b>文字内容</b>         e.文字倾斜:<i>文字内容</i>         f.字下划线:<u>文字内容</u>      示例:我想把文字颜色设为:蓝色,字体:隶书,字号:5,并且加粗,写上如下代码就行。<font color=#0000ff face=隶书size=5><b>文字内容</b></FONT>     二:段落排版代码:

    1.换行标签:<br> 注:此标记为单独使用,不需要用</br>来结尾。

    2.分段标签:<p> 注:是另起一新段落,如:<p>新段内容</p>

    3.空格标签:  注:这个不用尖括号,需要用时直接贴上。示例:你   好。 这样的效果就是你    好。不使用这个代码,无论你空多少格,网页最多显示出一个空格。       4.对齐方式:(参照相对于页面,内容可以是文字、图片或动画)

    a.左对齐:<left>内容</left>注:这是默认值,左对齐不需要用标签注明。         b.居中对齐: <center>内容</center>         c.右对齐:<center>内容</center>     三:动态文字代码:(没注明的自动显示默认值)

    1.文字移动标签:<marquee>滚动文字内容</marquee>

    a.调速代码:<marquee scrollAmount=1>滚动文字</marquee>注:1为最小值速度为最慢;数字越大移动的越快。

     b.延迟代码:<marquee scrolldelay=500>滚动文字</marquee>注:这是字符移动每步的延时,1为最小值,10001秒。         c.对齐方式:<marquee align=left>滚动文字</marquee>注:up向上、down向下、left向左、right向右。

    d.移动方式:<marquee behaviorscroll>滚动文字</marquee>注:scroll是文字单向移动,side是移动到边界停止,alternate是到边界后反向移动。

    e.循环次数:<marquee loop2>滚动文字</marquee>注:移动字符的循环2次,属性值为数字,若未指定则循环不止。         f.高度宽度:<marquee width500 height50>滚动文字</marquee>注:width是文字宽度,height是文字高度,以象素为单位。g.缩进设置:<marquee hspace10>滚动文字</marquee>  注:字符左右留空白长度,属性值为数字。示例:<marquee scrolldelay=500 scrollamount=100>啦啦啦,我走一步,停一停!</marquee>     四:图片显示代码:

    1.插入图片标签:<img src="图片网址.jpg">注:正常支持的图片格式为jpg,jpeg,gif,png

    2.设定图框标签:<img src="图形文件名" border=2>注:border=线框粗细像素点数,不用默认为没有边框.

    3.设定图形大小:<img src="图形文件名" width=宽度点数height=高度点数>注:不设默认图片原来大小.

    4.设定图形上下左右留空:<img src="图形文件名" vspace=上下留空点数hspace=左右留空点数>.

    5.图形附注: <img src="图形文件名" alt="说明文字">注:当鼠标指向图片时,显示说明文字,不设默认没有。      示例:<img src="http://upload.ourgame.com/bbs/upfile/2009/1/31/20090131110852wdmc8.gif" border=2 alt="能看到我吗?">     五:移动图片代码:(其实就是把三和四的代码综合应用)       1.<marquee><img src="图片网址.jpg"></marquee>  注:想放多个图片,就按此格式在中间插入.

    示例:<marquee><img src="http://upload.ourgame.com/bbs/upfile/2009/1/31/20090131110852wdmc8.gif"></marquee>

    六:声音播放代码:

    1.<bgsound src="音乐文件地址" loop=1>         注:loop是循环次数,这种背景音乐格式代码,只有在IE浏览器中才可以听到。一般用来插入wav wma mid mp3等格式的音乐。      示例:<bgsound src="http://202.107.225.9/NetTv/music/mp3/大海.mp3" loop=10>

    七:动画显示代码:

    1.<embed src="flash动画地址.swf"width="宽度值" height="高度值"></embed>       注:宽度和高度值填入数字,以像素为单位。      示例:<embed src="http://upload.ourgame.com/bbs/upfile/2009/3/29/20090329154616zixing393278.swf"width="540" height="100"></embed>

    八:超级链接代码:(如果需要别人点击你的文字或图片后打开一个新的网页面就看下面)

    1.<a href="点击后打开的网址">需要加入链接的文字或图片代码</a>       2.<a href="点击后打开的网址" target="_blank">需要加入链接的文字或图片代码</a>       注:2代码增加了target="_blank"代码的意思是在创建一个新窗口打开指定页面!而1代码是在原有窗口中载入页面。      示例:<a href="http://bbs.ourgame.com/bbs_look.asp?Subject_ID=107&BBS_ID=20081102124445&bPage=1" target="_blank">点此打开透明FLASH素材大全</a>         九:实用代码:(重要!)

    1.FLASH动画背景透明代码:<EMBED style="LEFT: 10px; POSITION: absolute; TOP: -70px" align=right src=FLASH的网址.swf width=550 height=400 type=application/x-shockwave-flash wmode="transparent">       注:width=550 height=400为动画宽高的数值,可自行调节; style="LEFT: 10px;LEFT可改为右面RIGHT10px是距离边框的距离10像素,是可调整数字;absolute; TOP: -70px"是距离顶部的距离,可调整数字。

    1.层代码:<div id="Parent" style="position:absolute; left:56px; top:54px; width:124px; height:158px; z-index:1;">这里可以放别的代码,如文字或图片或动画的代码</div>       注:这个代码可以让你放入层中的文字、图片或动画和原来页面上的其它内容位置相互重叠,像设计软件中的图层一样!可以修改的值分别是lefttop(分别对应xy坐标离页面顶部和左部的距离),还有widthheight是层的大小,最后:Z轴(也称为堆叠顺序)可以通过它的值来设定位置有重叠的多个层对象的上下叠放次序。      综合示例:要把一个FLASH动画放到层中,并且让此FLASH的背景透明化。      <div id="Parent" style="position:absolute; left:50px; top:50px; width:550px; height:400px; z-index:1;"><EMBED style="LEFT: 10px; POSITION: absolute; TOP: 0px" align=right src=http://upload.ourgame.com/bbs/upfile/2008/11/10/20081110164009zixing393278.swf width=550 height=400 type=application/x-shockwave-flash wmode="transparent"></div>

    <a href="要连接网址"><font color="#FF359A" size="5">说明事物的文章字</font></a>

     

     

    1.结构性定义

    文件类型 <HTML></HTML>(放在档案的开头与结尾)

    文件主题 <TITLE></TITLE>(必须放在「文头」区块内)

    文头 <HEAD></HEAD>(描述性资料,像是「主题」)

    文体 <BODY></BODY>(文件本体)

    (由浏览器控制的显示风格)

    标题 <H?></H?>(从16,有六层选择)

    标题的对齐 <H? ALIGN=LEFT|CENTER|RIGHT></H?>

    区分 <DIV></DIV>

    区分的对齐 <DIV ALIGN=LEFT|RIGHT|CENTER|JUSTIFY></DIV>

    引文区块 <BLOCKQUOTE></BLOCKQUOTE>(通常会内缩)

    强调 <EM></EM>(通常会以斜体显示)

    特别强调 <STRONG></STRONG>(通常会以加粗显示)

    引文 <CITE></CITE>(通常会以斜体显示)

    <CODE></CODE>(显示原始码之用)

    样本 <SAMP></SAMP>

    键盘输入 <KBD></KBD>

    变数 <VAR></VAR>

    定义 <DFN></DFN>(有些浏览器不提供)

    地址 <ADDRESS></ADDRESS>

    大字 <BIG></BIG>

    小字 <SMALL></SMALL>

    与外观相关的标签(作者自订的表现方式)

    加粗 <B></B>

    斜体 <I></I>

    底线 <U></U>(尚有些浏览器不提供)

    删除线 <S></S>(尚有些浏览器不提供)

    下标 <SUB></SUB>

    上标 <SUP></SUP>

    打字机体 <TT></TT>(用单空格字型显示)

    预定格式 <PRE></PRE>(保留文件中空格的大小)

    预定格式的宽度 <PRE WIDTH=?></PRE>(以字元计算)

    向中看齐 <CENTER></CENTER>(文字与图片都可以)

    闪耀 <BLINK></BLINK>(有史以来最被嘲弄的标签)

    字体大小 <FONT SIZE=?></FONT>(从17

    改变字体大小 <FONT SIZE=+|-?></FONT>

    基本字体大小 <BASEFONT SIZE=?>(从17;内定为3

    字体颜色 <FONT COLOR="#$$$$$$"></FONT>

    说明 <!-- *** -->(浏览器不会显示)

    <!--修改滚动条-->

    <style type="text/css">

    body {

    scrollbar-face-color: #330033;

    scrollbar-shadow-color: #FFFFFF;

    scrollbar-highlight-color: #FFFFFF;

    scrollbar-3dlight-color: #FFFFFF;

    scrollbar-darkshadow-color: #FFFFFF;

    scrollbar-track-color: #330033;

    scrollbar-arrow-color: #FFFFFF;

    }

    </style>

    <!--修改滚动条结束-->

    将上面的代码放在叶子代码的<head></head>之间,颜色可根据自己的需要修改。

    滚动条的代码意思如下:

    Scrollbar-Face-Color为滚动条表面颜色设定;

    Scrollbar-Track-Color为滚动条底板颜色设定;

    Scrollbar-Darkshadow为滚动条下边和右边边沿颜色设定;

    Scrollbar-Highlight-Color为滚动条上斜面和左斜面颜色设定;

    Scrollbar-Shadow-Color为滚动条下斜面和右斜面颜色设定;

    Scrollbar-3Dlight-Color为滚动条上边和左边的边沿颜色设定;

    Scrollbar-Arrow-Color为滚动条两端箭头颜色设定。

    <!> 跑馬燈

    <marquee>...</marquee>普通捲動

    <marquee behavior=slide>...</marquee>滑動

    <marquee behavior=scroll>...</marquee>預設捲動

    <marquee behavior=alternate>...</marquee>來回捲動

    <marquee direction=down>...</marquee>向下捲動

    <marquee direction=up>...</marquee>向上捲動

    <marquee direction=right></marquee>向右捲動

    <marquee direction=’left’></marquee>向左捲動

    <marquee loop=2>...</marquee>捲動次數

    <marquee width=180>...</marquee>設定寬度

    <marquee height=30>...</marquee>設定高度

    <marquee bgcolor=FF0000>...</marquee>設定背景顏色

    <marquee scrollamount=30>...</marquee>設定捲動距離

    <marquee scrolldelay=300>...</marquee>設定捲動時間

    1)贴图:<img src="图片地址">

    2)加入连接:<a href="所要连接的相关地址">写上你想写的字</a>

    3)在新窗口打开连接:<a href="相关地址" target="_blank">写上要写的字</a>

    4)移动字体(走马灯)<marquee>写上你想写的字</marquee>

    5)字体加粗:<b>写上你想写的字</b>

    6)字体斜体:<i>写上你想写的字</i>

    7)字体下划线: <u>写上你想写的字</u>

    8)字体删除线: <s>写上你想写的字</s>

    9)字体加大: <big>写上你想写的字</big>

    10)字体控制大小:<h1>写上你想写的字</h1> (其中字体大小可从h1-h5,h1最大,h5最小)

    11)更改字体颜色:<font color="#value">写上你想写的字</font>(其中value值在000000ffffff(16位进制)之间

    12)消除连接的下划线:<a href="相关地址" style="text-decoration:none">写上你想写的字</a>

    13)贴音乐:<embed src="音乐地址" width="宽度" height="高度" autostart=false>

    14)flash: <embed src="flash地址" width="宽度" height="高度">
    15)贴影视文件:<img dynsrc="文件地址" width="宽度" height="高度" start=mouseover>

    16)换行:<br>

    17)段落:<p>段落</p>

    18)原始文字样式:<pre>正文</pre>

    19)换帖子背景:<body background="背景图片地址">

    20)固定帖子背景不随滚动条滚动:<body background="背景图片地址" body
    bgproperties=fixed>

    21)定制帖子背景颜色:<body bgcolor="#value">(value值见10)

    22)帖子背景音乐:<bgsound="背景音乐地址" loop=infinite>

    23)贴网页:<iframe. src="相关地址" width="宽度" height="高度"></iframe>

    1、店铺音乐代码:音乐网址" loop="-1">

    2、图片制作代码:<img src="这里放图片地址"

    3、公告图片代码:<img border="0" src="这里放图片地址" />或<img src="这里放图片地址"/

    4、悬浮挂饰代码:<img src="这里放图片地址" style="left:20px; position: relative; top:0px" /

    5、商品分类代码:img src="这里放图片地址"/

    6、字体大小代码:font size="2">这里放要处理的文字,可用345等设置大小</font

    7、字体颜色代码:font color="red">这里放要处理的文字,可以换成blue,yellow等</font

    8、文字链接代码:a href="网页地址">链接的文字,在分类栏里用时链接的网页地址必须缩短</a

    9、移动文字代码:marquee>从右到左移动的文字</marquee

    10、背景音乐代码:<bgsound loop="-1" src="这里放音乐地址"></bgsound

    11、图片附加音乐代码:<img border=0 src="这里放图片地址" dynsrc="这里放音乐地址"

    12、浮动图片代码:img alt="1" height="150" src="这里放图片地址"/


    公告图片的代码:公告挂饰:店铺分类代码:背景音乐代码:换行代码
    计数器代码颜色代码:
    天蓝色azure

    蓝色blue

    黑色black

    灰色grey

    绿色green

    红色red

    黄色yellow

    白色white

    palegoldenrod 苍麒麟色

    palegreen 苍绿色

    paleturquoise 苍绿色

    palevioletred 苍紫罗蓝色

    pansy 紫罗兰色

    papayawhip 番木色

    peachpuff 桃色

    peru 秘鲁色

    pink 粉红

    plum 杨李色

    powderblue 粉蓝色

    purple 紫色

    red 红色

    rosybrown 褐玫瑰红

    royalblue 宝蓝色

    rubine 宝石红

    saddlebrown 重褐色

    salmon 鲜肉色

    salmon pink 橙红色

    sandy beige 浅褐色

    sandybrown 沙褐色

    sapphire 宝石蓝

    scarlet 猩红色

    seagreen 海绿色

    seashell 海贝色

    shocking pink 鲜粉红色

    sienna 赭色

    silver 银白色

    skyblue 天蓝色

    slateblue 石蓝色

    slategray 灰石色

    smoky gray 烟灰色

    snow 雪白色

    springgreen 春绿色

    steelblue 钢蓝色

    stone 石色

    tan 茶色

    teal 水鸭色

    thistle 蓟色

    tomato 番茄色

    turquoise 青绿色

    turquoise blue 翠蓝色

    violet 紫色

    wheat 浅黄色

    white 白色

    whitesmoke 烟白色

    winered 葡萄酒红

    yellow 黄色

    yellowgreen 黄绿色
    1白色 #FFFFFF
    2红色#FF0000
    3绿色#00FF00
    4蓝色#0000FF
    5牡丹红#FF00FF
    6青色 #00FFFF
    7黄色#FFFF00
    8黑色#000000
    9海蓝#70DB93
    10巧克力色#5C3317
    11蓝紫色 #9F5F9F
    12黄铜色#B5A642
    13亮金色#D9D919
    14棕色#A67D3D
    15青铜色 #8C7853
    162号青铜色 #A67D3D
    17士官服蓝色 #5F9F9F
    18冷铜色 #D98719
    19铜色 #B87333
    20珊瑚红 #FF7F00
    21紫蓝色 #42426F
    22深棕 #5C4033
    23深绿 #2F4F2F
    24深铜绿色 #4A766E
    25深橄榄绿 #4F4F2F
    26深兰花色 #9932CD
    27深紫色 #871F78
    28深石板蓝 #6B238E
    29深铅灰色 #2F4F4F
    30深棕褐色 #97694F
    32深绿松石色 #7093DB
    33暗木色 #855E42
    34淡灰色 #545454
    35土灰玫瑰红色 #856363
    36长石色 #D19275
    37火砖色#8E2323
    38森林绿 #238E23
    39金色 #CD7F32
    40鲜黄色 #DBDB70
    41灰色 #C0C0C0
    42铜绿色 #527F76
    43青黄色 #93DB70
    44猎人绿 #215E21
    45印度红 #4E2F2F
    46土黄色 #9F9F5F
    47浅蓝色 #C0D9D9
    48浅灰色 #A8A8A8
    49浅钢蓝色 #8F8FBD
    59浅木色 #E9C2A6
    60石灰绿色 #32CD32
    61桔黄色 #E47833
    62褐红色 #8E236B
    63中海蓝色 #32CD99
    64中蓝色 #3232CD
    65中森林绿 #6B8E23
    66中鲜黄色 #EAEAAE
    67中兰花色 #9370DB
    68中海绿色 #426F42
    69中石板蓝色 #7F00FF
    70中春绿色 #7FFF00
    71中绿松石色 #70DBDB
    72中紫红色 #DB7093
    73中木色 #A68064
    74深藏青色 #2F2F4F
    75海军蓝 #23238E
    76霓虹篮 #4D4DFF
    77霓虹粉红 #FF6EC7
    78新深藏青色 #00009C
    79新棕褐色 #EBC79E
    80暗金黄色 #CFB53B
    81橙色 #FF7F00
    82橙红色 #FF2400
    83淡紫色 #DB70DB
    84浅绿色 #8FBC8F
    85粉红色 #BC8F8F
    86李子色 #EAADEA
    87石英色 #D9D9F3
    88艳蓝色 #5959AB
    89鲑鱼色 #6F4242
    90猩红色 #BC1717
    91海绿色 #238E68
    92半甜巧克力色 #6B4226
    93赭色 #8E6B23
    94银色 #E6E8FA
    95天蓝 #3299CC
    96石板蓝 #007FFF
    97艳粉红色 #FF1CAE
    98春绿色 #00FF7F
    99钢蓝色 #236B8E
    100亮天蓝色 #38B0DE
    101棕褐色 #DB9370
    102紫红色 #D8BFD8
    103石板蓝色 #ADEAEA
    104浓深棕色 #5C4033
    105淡浅灰色 #CDCDCD
    106紫罗兰色 #4F2F4F
    107紫罗兰红色 #CC3299
    108麦黄色#D8D8BF
    109黄绿色 #99CC32

    简单常用HTML代码大全(修改网页必备)

    网页常用HTML代码大全

    超链接,用的最多:

    点击在当前页打开网站
    <a href="http://www.88wan.com/">这是我的网站</a>
    效果:
    这是我的网站

    点击弹出网站
    <a href="http://www.88wan.com/" target="_blank">这是我的网站</a>

    <br>这个是向下一行,比如

    欢迎光临我的网站<br>希望开心

    演示效果就是:
    欢迎光临我的网站
    希望开心

    <p>向下一大行,比如
    欢迎光临我的网站<p>希望开心

    演示效果就是:

    欢迎光临我的网站

    希望开心

    <b>这是粗体字
    比如 <b >我的网站</ b>
    演示效果:我的网站

    我的网站这是字体的颜色BLUE是蓝,RED是红

    演示

    忽视右键
    <body >

    <body style="overflow-y:hidden">
    如何几秒后转到别的页面?
    <META. HTTP-EQUIV="Refresh" C>

    点击关闭窗口
    <a href="javascript.:top.window.close();">点击关闭窗口</a>

    请问如何去掉主页右面的滚动条?
    <body scroll="no">
    <body style="overflow-y:hidden">

    如何做到让一个网页自动关闭.
    <html>
    <head>
    <OBJECT id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
    <param name="Command" value="Close">
    </object>
    </head>
    <body >
    这个窗口会在10秒过后自动关闭,而且不会出现提示. </body>

    如何在不刷新页面的情况下刷新css?
    <style>
    button{ color:#000000;}
    </style>
    <button nclick=document.styleSheets[0].rules[0].style.color=‘‘‘‘red‘‘‘‘>点击按钮直接修改style标签里button选择符使按钮改为红色</button>
    请问如何让网页自动刷新?
    head部记入<META. HTTP-EQUIV="Refresh" c>其中2020秒后自动刷新,你可以更改为任意值。
    如何让页面自动刷新?
    方法一,用refresh

    HTML 代码片段如下:
    <head>
    <meta. http-equiv="refresh" c>
    </head>
    5表示刷新时间
    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

    方法二,使用setTimeout控制
    <img src=/logo.gif>
    <script>
    function rl(){
    document.location.reload()
    }
    setTimeout(rl,2000)
    </script>

    如何让超链接没有下划线
    在源代码中的<HEAD>…</HEAD>之间输入如下代码:
    <style. type="text/css"> <!--
    a { text-decoration: none}
    --> </style>

    请问如何去掉IE的上下滚动条?
    <body style=‘‘‘‘overflow:scroll;overflow-y:hidden‘‘‘‘>
    </body>

    怎样才能把RealPlayer文件在网页做一个试听连接?
    <embed height=25src=51js.rm type=audio/x-pn-realaudio-plugin width=50 autostart="false" c>

    如何用html实现浏览器上后退按钮的功能?
    <a href="java script.:history.go(-1)">点击后退</a>
    或者
    <script> history.back() </script>

    请问怎么在网页中改变鼠标的箭头形状?
    HTML 代码片段如下:
    <body>
    <a href="#" style="cursor: auto;">auto</a><br>
    <a href="#" style="cursor: crosshair ">crosshair </a><br>
    <a href="#" style="cursor: default ">default </a><br>
    <a href="#" style="cursor: hand ">hand </a><br>
    <a href="#" style="cursor: move ">move </a><br>
    <a href="#" style="cursor: e-resize ">e-resize </a><br>
    <a href="#" style="cursor: ne-resize ">ne-resize </a><br>
    <a href="#" style="cursor: nw-resize">nw-resize</a><br>
    <a href="#" style="cursor: n-resize">n-resize</a><br>
    <a href="#" style="cursor: se-resize">se-resize</a><br>
    <a href="#" style="cursor: sw-resize">sw-resize</a><br>
    <a href="#" style="cursor: s-resize">s-resize</a><br>
    <a href="#" style="cursor: w-resize">w-resize</a><br>
    <a href="#" style="cursor: text">text</a><br>
    <a href="#" style="cursor: wait">wait</a><br>
    <a href="#" style="cursor: help">help</a><br>
    </body>

    怎样不使用页面的缓存?即每一次打开页面时不是调用缓存中的东西
    <META. HTTP-EQUIV="
    ragma" C>

    页面打开时自动弹出一个窗口的代码怎么写?  
    HTML 代码片段如下:
    <html>
    <head>
    <title>Untitled Document</title>
    <meta. http-equiv="Content-Type" c>
    <script. language="<B style="color:black;background-color:#A0FFFF">javascript</B>">
    <!--
    function MM_openBrWindow(theURL,winName,features) { //v2.0
     window.open(theURL,winName,features);
    }
    //-->
    </script>
    </head>
    <body bgcolor="#FFFFFF" text="#000000" >
    </body>
    </html>

    如何让我的页面出现一个会讲话的小人?Merlin
    HTML 代码片段如下:
    <HTML>
    <HEAD>
    <TITLE>默林</TITLE>
    <META. http-equiv=Content-Type c>
    </HEAD>
    <BODY>
    <p><OBJECT id=sims classid=CLSID
    45FD31B-5C6E-11D1-9EC1-00C04FD7081F>
     </OBJECT>
     <SCRIPT>
    var MerlinID;
    var MerlinACS;
    sims.Connected = true;
    MerlinLoaded = LoadLocalAgent(MerlinID, MerlinACS);
    Merlin = sims.Characters.Character(MerlinID);
    Merlin.Show();
    Merlin.Play("Surprised");
    Merlin.Speak("大家好");
    Merlin.Play("GestureLeft");
    Merlin.Think("我是默林!");
    Merlin.Play("
    leased");
    Merlin.Think("可爱吗?");
    Merlin.Play("GestureDown");
    Merlin.Speak("哈哈!");
    Merlin.Hide();
    function LoadLocalAgent(CharID, CharACS){
    LoadReq = sims.Characters.Load(CharID, CharACS);
    return(true);
    }
    </SCRIPT>
    </p>
    <p> </p>
    <p>看此效果必须装有office2000!!!</p>
    </BODY>
    </HTML>

    在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
    HTML 代码片段如下:
    <html><head>
    <STYLE>
    body{background-image:url(logo.gif);
         background-repeat:no-repeat; background-position:center }
    </STYLE>
    </head>
    <body bgproperties="fixed" >
    </body>
    </html>
    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
    background-repeat:no-repeat; 是讓背景圖不占滿整個頁面
    body bgproperties="fixed" 是拉動scroll時背景圖不動

    文本输入框什么属性能实现不可输入?

    HTML 代码片段如下:
    <input type="text" name="textfield" disabled>
    或者
    <input type="text" name="textfield" readonly>

    如何禁止自己的页面在别人的框架里打开?
    把以下代码加至你的<head>
    <script>
    if (window.top!=self){
    window.top.location=self.location
    }
    </script>

    如何实现首页全屏幕显示?
    HTML 代码片段如下:
    <html>
    <body><script. language="<B style="color:black;background-color:#A0FFFF">javascript</B>">
    var coolw=642
    var coolh=400
    var coolhuang=window.open("http://www.51js.com","coolhuang","width="+coolw+",height="+coolh+",
    fullscreen=1,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0")
    window.close()
    </script></body></html>

    如何监听一个窗口被关闭了?  
    HTML 代码片段如下:
    <body >

    如何禁止Ctrl+N
    HTML 代码片段如下:
    <body nkeydown=return(!(event.keyCode==78&&event.ctrlKey))>

    如何把页面加入用户的收藏夹?
    HTML 代码片段如下:
    <a href="<B style="color:black;background-color:#A0FFFF">javascript</B>:window.external.AddFavorite(‘‘‘‘
    http://www.51js.com‘‘‘‘,‘‘‘‘无忧脚本‘‘‘‘)">收藏无忧脚本</a>

    如何在我的页面中加入背景音乐?
    IE: <bgsound src="*.mid" loop=infinite>
    NS:<embed src="*.mid" autostart=true hidden=true loop=true>
    *.mid你的背景音乐的midi格式文件


    关于页面转换效果
    <meta. http-equiv="page-enter" c>

    <meta. http-equiv="page-exit" c>
    说明:Transition=23是随机效果,另可以选0-22任一数字固定某个效果

    如何设定打开页面的大小
    HTML 代码片段如下:
    <body ><!--(widthheight)-->

    怎样双击滚屏,单击停止?
    HTML 代码片段如下:
    <html>
    <head>
    <title>新網頁1</title>
    </head>
    <body>
    <script. language"<B style="color:black;background-color:#A0FFFF">javascript</B>">
    var currentpos,timer;
    function initialize()
    {
    timer=setInterval("scrollwindow()",10);
    }
    function sc(){
    clearInterval(timer);
    }
    function scrollwindow()
    {
    currentpos=document.body.scrollTop;
    window.scroll(0,++currentpos);
    if (currentpos != document.body.scrollTop)
    sc();
    }
    document.οnmοusedοwn=sc
    document.οndblclick=initialize
    </script>
    <p>a</p><p>a</p><p>a</p><p>aa</p><p>aa</p><p>aa</p>
    <p>aa</p><p>aa</p><p>aa</p><p>aa</p><p>aa</p><p>aa</p>
    <p>aa</p><p>aa</p><p>aa</p><p>aa</p><p>aa</p><p>aa</p>
    <p>aa</p><p>aa</p><p>aa</p><p>aa</p><p>a</p>
    </body>
    </html>

    如何让body中的文字不被选中?
    HTML 代码片段如下:
    <body   >aaa</body>

    如何让弹出的窗口不能关闭?
    在新开的窗口中加入如下代码
    <body nunload=open(location.href)>
    </body>

    如何让浏览器在保存页面时保存失败?
    HTML 代码片段如下:
    <NOSCRIPT>
    <<B style="color:black;background-color:#ffff66">IFRAME</B> SRC="*.html">
    </<B style="color:black;background-color:#ffff66">IFRAME</B>>
    </NOSCRIPT>

    表单中如何用图片按钮实现 reset?
    <html>
    <head>
    <script>
    function aaa(){
    document.forms[0].reset()
    }
    </script>
    </head>
    <body>
    <form>
    <textarea rows="2" name="S1" cols="20"></textarea>
    <input type="submit" values="提交" name="B1">
    <image src="logo.gif" nclick=aaa()>
    </form>
    </body></html>

     

    进入网页时弹出的信息对话框
    <body >
    关闭窗口后弹出对话框
    <body >
    告别提示
    <body nUnload= alert("再见,感谢你的访问!")>

    只要你肯干,没有什么不能成功的.

    1。忽视右键
    <body ncontextmenu="return false">

    <body style="overflow-y:hidden">
    2。加入背景音乐
    IE:<bgsound src="*.mid" loop=infinite>
    NS:<embed src="*.mid" autostart=true hidden=true loop=true>
    </embed>
    *.mid你的背景音乐的midi格式文件
    3。简单的window.open方法
    <a href="#"
    nclick="javascript:window.open(文件路径/文件名,newwindow,
    toolbar=no,scrollbars=yes,resizable=no,top=0,left=0,
    width=400,height=300);">文字或图片</a>
    参数解释:
    <SCRIPT. LANGUAGE="javascript"> js脚本开始;
    window.open 弹出新窗口的命令;
    文件路径/文件名 弹出窗口的文件名;
    newwindow 弹出窗口的名字(不是文件名),非必须,可用空代替;
    width=400 窗口宽度;
    height=300 窗口高度;
    top=0 窗口距离屏幕上方的象素值;
    left=0 窗口距离屏幕左侧的象素值;
    toolbar=no 是否显示工具栏,yes为显示;
    menubarscrollbars表示菜单栏和滚动栏。
    resizable=no 是否允许改变窗口大小,yes为允许;
    location=no 是否显示地址栏,yes为允许;
    status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;
    </SCRIPT> js脚本结束
    4。简单的页面加密
    <script. LANGUAGE="javascript">
    <!--
    function loopy(){
    var sWord ="";
    while(sWord!="login"){sWord=prompt("请输入你的登陆密码");}
    alert("登陆成功!");
    }
    loopy()
    //-->
    </script>
    5。拉动页面时背景图不动
    <style>
    body{background-image:url(logo.gif);
    background-repeat:no-repeat;background-position:center}
    </style>
    6。让浏览器在保存页面时保存失败
    <NOSCRIPT><iframe. src="*.html"></iframe></NOSCRIPT>
    7。随机替换图片
    <script>
    document.write(<img src="img/+parseInt(Math.random()*(5))
    +.gif"height="40" width="50">
    </script>
    图片文件名为0.gif 1.gif 2.gif 3.gif 4.gif
    8。窗口定时关闭
    先将如下代码网页文件的区:
    <script. language="javascript">
    function closeit() { setTimeout("self.close()",10000) //毫秒}
    </script>
    然后再在<body>标内加入如:<body nload="closeit()">
    9。网页自动关闭
    <html>
    <head>
    <object id=closes type="application/x-oleobject"
    classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
    <param name="Command" value="Close">
    </object>
    </head>
    <body nload="window.setTimeout(closes.Click(),10000)">
    这个窗口会在10秒过后自动关闭,而且不会出现提示.
    </body>
    </html>
    10。网页自动刷新
    head部记入
    <META. HTTP-EQUIV="Refresh" content="20">
    其中2020秒后自动刷新,你可以更改为任意值。
    11。网页自动转页
    <META. HTTP-EQUIV="Refresh" CONTENT="时间();URL=地址">
    12。保持layer在最前面,而不被IframeObject所覆盖
    Layer中再插Iframe.Objectz-Index
    <div z-Index:2><object xxx></object> # 前面
    <div z-Index:1><object xxx></object> # 后面
    <div id="Layer2" style="position:absolute; top:40;width:400px;
    height:95px;z-index:2"> height=100% width=100%>
    <iframe. width=0 height=0></iframe>
    </div>
    <div id="Layer1" style="position:absolute; top:50;width:200px;
    height:115px;z-index:1">
    <iframe. height=100% width=100%></iframe>
    </div>
    13。返回上一页
    <a href=javascript:history.back(1)>『返回上一页』</a>
    14。关闭窗口
    <a href=javascript:self.close()>『关闭窗口』</a>
    15。关于iframe的透明背景
    <IFRAME. ID="iFrame1" SRC="iframe.htm"
    allowTransparency="true"
    style="background-color: green"></IFRAME>
    16. ncontextmenu="window.event.returnValue=false"将彻底屏蔽鼠标右键
         <table border ncontextmenu=return(false)><td>no</table>可用于Table
    17. <body nselectstart="return false"> 取消选取、防止复制
    18.οnpaste="return false" 不准粘贴
    19.οncοpy="return false;" ncut="return false;"防止复制

     

    20. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标

     

    21. <link rel="Bookmark" href="favicon.ico">可以在收藏夹中显示出你的图标

     

    22. <input style="ime-mode:disabled"> 关闭输入法

     

    23. 永远都会带着框架
    <script. language="JavaScript"><!--
    if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
    // --></script>

     

    24. 防止被人frame.

     

    <SCRIPT. LANGUAGE=JAVASCRIPT><!--
    if (top.location != self.location)top.location=self.location;
    // --></SCRIPT>

     

    25. 网页将不能被另存为

     

    <noscript><iframe. src=*.html></iframe></noscript>

     

    26. 查看网页源代码

     

    <input type=button value=查看网页源代码
    οnclick="window.location = "view-source:"+ "http://www.pconline.com.cn"">

     

    27.删除时确认

     

    <a href="javascript:if(confirm("确实要删除吗?"))location="boos.asp? &areyou=删除&page=1"">删除</a>

     

    28.屏蔽功能键Shift,Alt,Ctrl
    <script>
    function look(){
    if(event.shiftKey)
    alert("禁止按Shift!"); //可以换成ALTCTRL
    }
    document.οnkeydοwn=look;
    </script>

    29. 网页不会被缓存
    <META. HTTP-EQUIV="pragma" CONTENT="no-cache">
    <META. HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
    <META. HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
    或者<META. HTTP-EQUIV="expires" CONTENT="0">

     

    30.怎样让表单没有凹凸感?
    <input type=text style="border:1 solid #000000">
    <input type=text style="border-left:none; border-right:none; border -top:none; border-bottom: 1 solid #000000"></textarea>

    31.不要滚动条?
    让竖条没有:
    <body style="overflow:scroll;overflow-y:hidden">
    </body>
    让横条没有:
    <body style="overflow:scroll;overflow-x:hidden">
    </body>
    两个都去掉?更简单了
    <body scroll="no">
    </body>

     

    32.怎样去掉图片链接点击后,图片周围的虚线?

     

    <a href="#" nFocus="this.blur()"><img src="logo.jpg" border=0></a>

     

    33.电子邮件处理提交表单

     

    <form. name="form1" method="post" action="mailt****@***.com" enctype="text/plain">
    <input type=submit>
    </form>

     

    34.在打开的子窗口刷新父窗口的代码里如何写?
    window.opener.location.reload()

     

    35.如何设定打开页面的大小
    <body nload="top.resizeTo(300,200);">
    打开页面的位置<body nload="top.moveBy(300,200);">

     

    36.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
    <STYLE>
    body
    {background-image:url(logo.gif); background-repeat:no-repeat;
    background-position:center;background-attachment: fixed}
    </STYLE>

     

    37. 检查一段字符串是否全由数字组成
    <script. language="Javascript"><!--
    function checkNum(str){return str.match(//D/)==null}
    alert(checkNum("1232142141"))
    alert(checkNum("123214214a1"))
    // --></script>

     

    38. 获得一个窗口的大小
    document.body.clientWidth; document.body.clientHeight

     

    39. 怎么判断是否是字符
    if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");
    else alert("全是字符");

    40.TEXTAREA自适应文字行数的多少
    <textarea rows=1 name=s1 cols=27 npropertychange="this.style.posHeight=this.scrollHeight">
    </textarea>

     

    41. 日期减去天数等于第二个日期
    <script. language=Javascript>
    function cc(dd,dadd)
    {
    //可以加上错误处理
    var a = new Date(dd)
    a = a.valueOf()
    a = a - dadd * 24 * 60 * 60 * 1000
    a = new Date(a)
    alert(a.getFullYear() + "" + (a.getMonth() + 1) + "" + a.getDate() + "")
    } cc("12/23/2002",2)
    </script>

     

    42. 选择了哪一个Radio
    <HTML><script. language="vbscript">
    function checkme()
    for each ob in radio1
    if ob.checked then window.alert ob.value
    next
    end function
    </script><BODY>
    <INPUT name="radio1" type="radio" value="style" checked>Style.
    <INPUT name="radio1" type="radio" value="barcode">Barcode
    <INPUT type="button" value="check" nclick="checkme()">
    </BODY></HTML>

    43.脚本永不出错
    <SCRIPT. LANGUAGE="JavaScript">
    <!-- Hide function killErrors(){return true;} window.onerror = killErrors; // -->
    </SCRIPT>

     

    44.ENTER键可以让光标移到下一个输入框
    <input nkeydown="if(event.keyCode==13)event.keyCode=9">

     

    45. 检测某个网站的链接速度:
    把如下代码加入<body>区域中:
    <script. language=Javascript>
    tim=1
    setInterval("tim++",100)
    b=1
    var autourl=new Array()
    autourl[1]="
    www.njcatv.net"
    autourl[2]="javacool.3322.net"
    autourl[3]="
    www.sina.com.cn"
    autourl[4]="
    www.nuaa.edu.cn"
    autourl[5]="
    www.cctv.com"
    function butt(){
    document.write("<form. name=autof>")
    for(var i=1;i<autourl.length;i++)
    document.write("<input type=text name=txt"+i+" size=10 value=测试中

     

    ……> =<input type=text
    name=url"+i+" size=40> =<input type=button value=GO

     

    οnclick=window.open(this.form.url"+i+".value)><br>")
    document.write("<input type=submit value=刷新></form>")
    }
    butt()
    function auto(url){
    document.forms[0]["url"+b].value=url
    if(tim>200)
    {document.forms[0]["txt"+b].value="链接超时"}
    else
    {document.forms[0]["txt"+b].value="时间"+tim/10+""} b++ }
    function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl+"/"+Math.random()+" width=1 height=1 nerror=auto("http://"+autourl+"")>")}
    run()</script>

    46. 各种样式的光标
    auto :标准光标
    default :标准箭头
    hand :手形光标
    wait :等待光标
    text I形光标
    vertical-text :水平I形光标
    no-drop :不可拖动光标
    not-allowed :无效光标
    help ?帮助光标
    all-scroll :三角方向标
    move :移动标
    crosshair :十字标
    e-resize
    n-resize
    nw-resize
    w-resize
    s-resize
    se-resize
    sw-resize

    47、禁止鼠标右键,把Demo的图片全都设为表格的背景,表格的大小与图片的大小一样。这样做看起来是一样的,主要是防止鼠标经过图片时会出现另存的按钮。禁止鼠标右键的代码很简单:<script. LANGUAGE="JavaScript"> function click() { if (event.button==2) {alert('呵呵,不好意思,你甭想使用右键下载图片:)'); } } document.οnmοusedοwn=click</script>

     

     

     

    CSS网页布局入门教程13:下拉及多级弹出式菜单

      下拉及弹出式菜单是网站设计中常用导航形式,这种菜单形式能够充分利用页面现在空间隐藏与显示更多内容,并能对内容进行合理的分类显示,是一种非常优秀的导航形式。
      早期的下拉或弹出式菜单通过隐藏的layerdiv来实现内容的隐藏,通过JavaScript脚本来响应用户的操作,目前也采用JavaScript+div或其它元素的形式来制作此类导航,不同的是整个导航都将使用符合标准的css布局来打造,不再使用表格来制作菜单,下拉式菜单是上面提到的横向导航与纵向导航的结合,而且通过css对于属性的众多支持,同一个菜单不再需要多个div相互配合完成,使用
    css布局来制作下拉菜单,甚至可以直接控制ulli元素,现在来尝试一个最简单的下拉菜单的制作,需要补充的是,下拉式菜单的实现利用了很多JavaScript技术,在这里对JavaScript技术不作过多的语法上的综合了解,只想通过现有的实例来告诉大家由于css元素属性的灵活性,而使用制作网页上的元素更加简单方便。先看一下目前所设计的导航的XHTML部分代码:

    <ul id="nav">
        <li><a href="">文章</a>
            <ul>
                <li><a href="">CSS教程</a></li>
                <li><a href="">DOM教程</a></li>
                <li><a href="">XML教程</a></li>
                <li><a href="">FLASH教程</a></li>
            </ul>
        </li>
        <li><a href="">参考</a>
            <ul>
                <li><a href="">XHTML</a></li>
                <li><a href="">XML</a></li>
                <li><a href="">CSS</a></li>
            </ul>
        </li>
        <li><a href="">BLOG</a>
            <ul>
                <li><a href="">全部</a></li>
                <li><a href="">网页技术</a></li>
                <li><a href="">UI技术</a></li>
                <li><a href="">FLASH技术</a></li>
            </ul>
        </li>
    </ul>
    <ul>
        <li><a href="">摇滚</a></li>
        <li><a href="">纯音乐</a></li>
        <li><a href="">古典金曲</a></li>
        <li><a href="">电影原声</a></li>
    </ul>

      一个标准的采用ul结构的菜单构成,但与前面所不同的是,这里的代码结构涉及嵌套,在第一层的li之间插入了另一个ul的结构,这就是多级菜单的一个代码构成模式,XHTML代码允许通过嵌套元素来实现想要的效果或者结构。下一步,我们尝试编写一些简单的css样式让菜单变成所希望的横向式:

    ul { padding:0; margin:0; list-style:none;}
    li { float:left; width:100px;}

      第一步,对导航系统所有ul元素进行基本设置,list-style:none属性能够帮助我们去掉ul中的所有圆点标识。list-style属性拥有其它更丰富的使用方法,将在后面的列表元素中重点了解。
      我们希望导航是横向的通过对li设置float:left属性,将所有的li向左浮动,形成了横向的布局,并尝试使用每个li的宽度为100px,继续编写代码:

    li ul { display:none;}

      li ul的定义在这里所指的是所有li下面的ul元素,除了顶级的ul元素外,所有li下面定义的ul元素都将受到这部分样式的定义。使用display:none让这部分被隐藏起来。css中的的有元素基本上都可以使用display属性来控制显示还是隐藏。

    li:hover ul,.over ul { display:block;}

      li:hover ul定义了li元素下的ul元素。通过逗号分隔,让这两种情况下都能使用display:block属性,display:block属性和display:none属性刚好相反,一个是隐藏,一个是显示,当设置为display:block时,不仅其指派的元素将显示,而且还显示成一个块状,如果不进行display:block时,元素只会按自己的内容在屏幕上占有的区域进行显示,而使用display:block时,元素将自己形成一个广块作为自己的点位符,这种设置对于做大按钮来说是非常方便的。

      在最下边的预览内代码你可以看到,里边加上了一段js代码,它是用来控制在IE浏览器下显示下拉菜单的,本来li:hover ul这句是可以的,但IEcss的支持还还完善,所以需要借助JS来控制。
      下面我们尝试给下拉菜单增加一些样式:

    ul li a { display:block; font-size:12px; border:1px solid #ccc; margin-top:2px; margin-left:3px; padding:3px; text-decoration:none; color:#777;}
    ul li a:hover { background-color:#ddd;}

      css布局的下拉菜单控制重点在于对元素的隐藏与显示。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

    <title>下拉及多级弹出式菜单www.aa25.cn</title>

    <script type="text/javascript"><!--//--><![CDATA[//><!--

    startList = function() {

     if (document.all&&document.getElementById) {

      navRoot = document.getElementById("nav");

      for (i=0; i<navRoot.childNodes.length; i++) {

       node = navRoot.childNodes[i];

       if (node.nodeName=="LI") {

        node.οnmοuseοver=function() {

         this.className+=" over";

        }

        node.οnmοuseοut=function() {

         this.className=this.className.replace(" over", "");

        }

       }

      }

     }

    }

    window.οnlοad=startList;

     

    //--><!]]></script>

    <style>

    ul { padding:0; margin:0; list-style:none;}

    li { float:left; width:100px;}

    ul li a { display:block; font-size:12px; border:1px solid #ccc; margin-top:2px; margin-left:3px; padding:3px; text-decoration:none; color:#777;}

    ul li a:hover { background-color:#ddd;}

    li ul { display:none;}

    li:hover ul,.over ul { display:block;}

    </style>

    </head>

     

    <body>

    <ul id="nav">

     <li><a href="">文章</a>

      <ul>

       <li><a href="">CSS教程</a></li>

       <li><a href="">DOM教程</a></li>

       <li><a href="">XML教程</a></li>

       <li><a href="">FLASH教程</a></li>

      </ul>

     </li>

     <li><a href="">参考</a>

      <ul>

       <li><a href="">XHTML</a></li>

       <li><a href="">XML</a></li>

       <li><a href="">CSS</a></li>

      </ul>

     </li>

     <li><a href="">BLOG</a>

      <ul>

       <li><a href="">全部</a></li>

       <li><a href="">网页技术</a></li>

       <li><a href="">UI技术</a></li>

       <li><a href="">FLASH技术</a></li>

      </ul>

     </li>

    </ul>

    <ul>

     <li><a href="">摇滚</a></li>

     <li><a href="">纯音乐</a></li>

     <li><a href="">古典金曲</a></li>

     <li><a href="">电影原声</a></li>

    </ul>

    </body>

    </html>

    此例子只是讲解标签的灵活运用及css的强大功能。在实际应用时请参考http://www.aa25.cn/393.shtml

    本文来自:http://www.aa25.cn/291.shtml

     

     

     

     

    展开全文
  • XSL/XML网页制作入门,入门到精通

    千次阅读 2004-11-17 23:03:00
    然而,XML没有固定的标识,我们可以建立我们自己需要的标识,所以浏览器不能自动解析它们,例如可以理解表格,也可以理解桌子。由于XML的可扩展性,使我们没有一个标准的办法来显示XML文档。为了控制XM
    一. XSL入门

    1.XSL---XML的样式表 

    HTML网页使用预先确定的标识(tags),这就是说所有的标记都有明确的含义,例如<p>是另起一行<h1>是标题字体。所有的浏览器都知道如何解析和显示HTML网页。
    然而,XML没有固定的标识,我们可以建立我们自己需要的标识,所以浏览器不能自动解析它们,例如<table>可以理解为表格,也可以理解为桌子。由于XML的可扩展性,使我们没有一个标准的办法来显示XML文档。
    为了控制XML文档的显示,我们有必要建立一种机制,CSS就是其中的一种,但是XSL(eXtensible Stylesheet Language)是显示XML文档的首选样式语言,它比CSS更适合于XML。 

    2.XSL --- 不仅仅是一种样式表 

    XSL由两部分组成: 

    一是转化XML文档;二是格式化XML文档。 

    如果你不理解这个意思,可以这样想:XSL是一种可以将XML转化成HTML的语言,一种可以过滤和选择XML数据的语言,一种能够格式化XML数据的语言。(比如用红色显示负数。) 

    3.XSL --- 它能做什么? 

    XSL可以被用来定义XML文档如何显示,可以将XML文档转换成能被浏览器识别的HTML文件,通常的,XSL是通过将每一个XML元素"翻译"为HTML元素,来实现这种转换的。 

    XSL能够向输出文件里添加新的元素,或则移动元素。XSL也能够重新排列或者索引数据,它可以检测并决定哪些元素被显示,显示多少。 

    4.XSL在IE5中的显示 

    注意:IE5.0中,并不能完全兼容W3C组织发布的最新XSL标准。因为IE5.0是在XSL标准最终确定以前发布的。微软已经承诺在IE5.5中修正。 
    二.XSL的转换 

    1.将XML转换成HTML

    XSL是如何将XML文档转换成HTML文件的呢?我们来看一个例子,下面是XML文档的一部分: 
    <script src="highlight.js"></script> 程序代码:
    <?xml version="1.0" encoding="ISO8859-1" ?>
    <CATALOG>
    <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
    </CD>
    ...
    hn2_sunny.gif

    然后我们将下面的XSL文件作为HTML的模板将XML数据转换为HTML文件:

    <script src="highlight.js"></script> 程序代码:
    <?xml version=''1.0''?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <body>
    <table border="2" bgcolor="yellow">
    <tr>
    <th>Title</th>
    <th>Artist</th>
    </tr>
    <xsl:for-each select="CATALOG/CD">
    <tr>
    <td><xsl:value-of select="TITLE"/></td>
    <td><xsl:value-of select="ARTIST"/></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    <?xml version=''1.0''?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <body>
    <table border="2" bgcolor="yellow">
    <tr>
    <th>Title</th>
    <th>Artist</th>
    </tr>
    <xsl:for-each select="CATALOG/CD">
    <tr>
    <td><xsl:value-of select="TITLE"/></td>
    <td><xsl:value-of select="ARTIST"/></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    hn2_sunny.gif

    在上面的代码中, xsl:for-each元素的作用是定位XML文档中的哪些元素需要按以下模板显示。select属性用来定义源文件中的元素名。指定属性的这种语法又称为XML 
    Pattern(模式),类似文件子目录的表示形式。xsl:value-of元素用来在当前层次中插入子元素的内容模板。

    因为XSL样式表自身也是一个XML文档,因此,XSL文件的开头以一个XML声明开始。 xsl:stylesheet元素用来声明这是一个样式表文件。<xsl:template match="/">语句表示XML的源文档在当前目录下。

    如果为XML文档加上XSL样式表,看下面代码第2行,你的浏览器就可以精确的将XML 文档转换为HTML文件。

    <script src="highlight.js"></script> 程序代码:
    <?xml version="1.0" encoding="ISO8859-1" ?>
    <?xml-stylesheet type="text/xsl" href="cd_catalog.xsl"?>
    <CATALOG>
    <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
    </CD>
    ......
    <?xml version="1.0" encoding="ISO8859-1" ?>
    <?xml-stylesheet type="text/xsl" href="cd_catalog.xsl"?>
    <CATALOG>
    <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
    </CD>
    ......
    hn2_sunny.gif

    三. XSL--在客户端的实现


    1.JavaScript解决方案

    在上面的章节中我们已经解释了XSL是如何将XML转换成HTML文件。方法就是在XML文档的头部加入一个XSL样式表信息,然后让浏览器执行转换过程。

    这种方法在大部分情况下都做得很好,但是在不支持XML的浏览器中就无法正确显示了。

    一个更好的更全面的解决方案是使用Javascript来实现XML到HTML的转换。但是使用JavaScript必须得到以下功能支持:

    a.允许Javascript代替浏览器进行细节检测;

    b.根据不同的需要和不同的浏览器使用不同的样式表。

        对于XSL来说这是完全可行的。设计XSL的目标之一就是允许将一种格式转换成另一种格式,支持不同的浏览器,支持不同的用户需求。未来的浏览器的重要任务就是在客户端执行XSL的转换工作。

    2.一个具体的实例

        下面是我们上面提到的一个XML文档(cd_catalog.xml)例子的部分代码:

    <script src="highlight.js"></script> 程序代码:
    <?xml version="1.0" encoding="ISO8859-1" ?>
    <CATALOG>
    <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
    </CD>
    .
    .
    .
    <?xml version="1.0" encoding="ISO8859-1" ?>
    <CATALOG>
    <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
    </CD>
    .
    .
    .
    hn2_sunny.gif

    下面是完整的XSL文件(cd_catalog.xsl):

    <script src="highlight.js"></script> 程序代码:
    <?xml version=''1.0''?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <body>
    <table border="2" bgcolor="yellow">
    <tr>
    <th>Title</th>
    <th>Artist</th>
    </tr>
    <xsl:for-each select="CATALOG/CD">
    <tr>
    <td><xsl:value-of select="TITLE"/></td>
    <td><xsl:value-of select="ARTIST"/></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    <?xml version=''1.0''?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <body>
    <table border="2" bgcolor="yellow">
    <tr>
    <th>Title</th>
    <th>Artist</th>
    </tr>
    <xsl:for-each select="CATALOG/CD">
    <tr>
    <td><xsl:value-of select="TITLE"/></td>
    <td><xsl:value-of select="ARTIST"/></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    hn2_sunny.gif


    注意,现在XML文件还没有加入XSL样式表,还没有被转换成HTML文件。 

    下面是用JavaSript来实现最后转换的HTML代码:

    <script src="highlight.js"></script> 程序代码:
    <html>
    <body>
    <script language="java script">
    // Load XML
    var xml = new ActiveXObject("Microsoft.XMLDOM")
    xml.async = false
    xml.load("cd_catalog.xml")
    // Load the XSL
    var xsl = new ActiveXObject("Microsoft.XMLDOM")
    xsl.async = false
    xsl.load("cd_catalog.xsl")
    // Transform
    document.write(xml.transformNode(xsl))
    </script>
    </body>
    </html>
    <html>
    <body>
    <script language="java script">
    // Load XML 
    var xml = new ActiveXObject("Microsoft.XMLDOM")
    xml.async = false
    xml.load("cd_catalog.xml")
    // Load the XSL
    var xsl = new ActiveXObject("Microsoft.XMLDOM")
    xsl.async = false
    xsl.load("cd_catalog.xsl")
    // Transform
    document.write(xml.transformNode(xsl))
    </script>
    </body>
    </html>
    hn2_sunny.gif

        上面代码中使用了Javascript,如果你不知道如何写JavaScript,您最好专门学习一下。

        第一段代码建立一个Microsoft Parser(XMLDOM)解析的对象,并将XML文档读入内存;第二段代码建立另外一个对象并导入XSL文档;最后一行代码将XML文档用XSL文档转换,并将结果输出到HTML文件中。

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

      XML是一种元标记语言,没有许多固定的标记,为WEB开发人员提供了更大的灵活性。当我们使用HTML时,标记只是简单的表示内容的显示形式,而与表示的内容没有任何关联,为文档的进一步处理带来极大的不便。比如要表示个人简历,用HTML的表示方式如下:

    <script src="highlight.js"></script> 程序代码:
    <HTML>
    <BODY>
    <TABLE border=1 cellspacing=0>
    <TH>姓名<TD>禹希初<TH>性别<TD>男<TH>生日<TD>1977.5
    <TR>
    <TH>技能<TD colspan=5>数据库设计与维护、WEB开发
    </TABLE>
    </BODY>
    </HTML>
    <HTML>
    <BODY>
    <TABLE border=1 cellspacing=0>
    <TH>姓名<TD>禹希初<TH>性别<TD><TH>生日<TD>1977.5
    <TR>
    <TH>技能<TD colspan=5>数据库设计与维护、WEB开发
    </TABLE>
    </BODY>
    </HTML>
    hn2_sunny.gif

    =514)window.open(this.src);else return false;" alt="肖斌 ® - XIaoBIN © - {xiaobin.NET} ™" hspace=4 src="http://www.jxyc.gov.cn/leida/jsj/withwolf/uploadimg/20046323145219225.jpg" οnlοad="if(this.width>=514){this.style.cursor='hand'; this.previousSibling.style.display='';}" vspace=4 border=0>

    上例在浏览器中的样子

      在这里,我们无法从标记TH、TD得知其内容表示什么,如果用XML,相应的文档(文件名:个人简历.xml)就可写成如下形式:

    <script src="highlight.js"></script> 程序代码:
    <?xml version="1.0" encoding="GB2312"?>
    <resume>
    <name>禹希初</name>
    <sex>男</sex>
    <birthday>1977.5</birthday>
    <skill>数据库设计与维护、WEB开发</skill>
    </resume>
    <?xml version="1.0" encoding="GB2312"?>
    <resume>
    <name>禹希初</name>
    <sex></sex>
    <birthday>1977.5</birthday>
    <skill>数据库设计与维护、WEB开发</skill>
    </resume>
    hn2_sunny.gif

    此图片仅显示局部,请点击查看完整图片
    =514)window.open(this.src);else return false;" alt="肖斌 ® - XIaoBIN © - {xiaobin.NET} ™" hspace=4 src="http://www.jxyc.gov.cn/leida/jsj/withwolf/uploadimg/20046323165463799.gif" οnlοad="if(this.width>=514){this.style.cursor='hand'; this.previousSibling.style.display='';}" vspace=4 border=0>

    上例在浏览器中的样子(IE5.0或更新版本)

    说明:

      version──规定了XML文档的版本,此处只能是1.0;

      encoding── 此处规定了XML文档的编码类型,此处取值为"GB2312",也就是"简体中文"。

      对比两例,使用XML我们可以做到自定义标记,用标记表明内容的含义。这样在Internet上交流资料时,为用计算机处理文档提供了极大的方便,同时我们阅读源文件时也不会被一大堆格式弄得晕头转向。

      然而,由于XML并没有为标记规定显示方式,如果我们在游览器中查看以上两个文档(建议使用IE5.0或更新版本),我们将看到xml文档并没有以诸如表格的方式来显示。难道我们就不能像HTML一样显示文档吗?回答是否定的。以个人简历为例,需要另建一个格式文件说明各个标记的显示方式,其内容如下(假设文件名为resume.css):

    <script src="highlight.js"></script> 程序代码:
    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}
    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}
    hn2_sunny.gif

    说明:

      以上均为CSS样式,建议读者参考有关资料熟悉CSS,在以后学习中必须用到,此处由于篇幅关系不作介绍。建立文件resume.css后,在个人简历.xml文件的第一行后添加以下文字:
    <script src="highlight.js"></script> 程序代码:
    <?xml:stylesheet type="text/css" href="resume.css"?>
    <?xml:stylesheet type="text/css" href="resume.css"?>
    hn2_sunny.gif

    此图片仅显示局部,请点击查看完整图片
    =514)window.open(this.src);else return false;" alt="肖斌 ® - XIaoBIN © - {xiaobin.NET} ™" hspace=4 src="http://www.jxyc.gov.cn/leida/jsj/withwolf/uploadimg/20046323182357205.gif" οnlοad="if(this.width>=514){this.style.cursor='hand'; this.previousSibling.style.display='';}" vspace=4 border=0>

    说明:

      此处表示引用一个外部CSS样式文件,其中type规定样式类型(可取值为text/css或text/xsl),href规定文件路径。

      保存文件,再以IE5.0打开文件。怎么样?格式有些不一样吧。好象还不令人满意,文档内容是清晰了,但显示效果比HTML编写的文档就差得多了,XML编写的文档就只能以这种方式显示吗?!

    提示:

      1. 为了更好的理解与掌握XML,建议大家熟悉HTML 4.0与CSS 2.0语法;掌握JavaScript、VBscript中至少一种;编程经验、对数据库理论与SQL的了解均能使大家在学习XML时获益。

      2. XML文档中标记必须成对出现,如果是空标记也必须有前加"/"的同名标记结束,或使用此种文式<xml_mark/>表示空标记。

      3. XML以及下面将要介绍的XSL文档,属性值必须用双引号(")或单引号(’)括起来。

      4. XML文档必须是良构的(XSL文档也是XML文档中一种),也就是说标记必须有结束标记、标记可以嵌套但不可交叉,如:

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

    是合法的,而下面的形式

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

    则是错误的。如果XML文档在浏览时出错,多半是违反了上面提到的规则。

      上期我们讲到用CSS(层叠样式表)来格式化XML文档,其效果并不很令人满意。实际上CSS用来格式化HTML标记比较合适些,只是因为它简单才在上例中采用。

      XML在更多的时候只是一种数据文件,怎样将它变为我们日常所看到的HTML格式那样的文件呢?如果我们将XML文件比作结构化的原料的话,那么XSL就好像"筛子"与"模子",筛子选取自己需要的原料,这些原料再通过模子形成最终的产品:HTML。

      这个模子大致是这样:我们先设计好表现的页面,再将其中需要从XML中获取数据来填充内容的部分"挖掉",然后用XSL语句从XML中筛出相关的数据来填充。一言以譬之:这XSL实际上就是HTML的一个"壳子",XML数据利用这个"壳"来生成"传统"的HTML。

      XML在展开时是一个树形结构,我们将树形结构中自定义标记称为节点,节点之间存在父子、兄弟关系,我们要访问其中的结点从根结点就要以"/"来层层进入。

      在XSL这个壳中,我们要从原料库XML里提取相关的数据,就要用到XSL提供的模式化查询语言。所谓模式化查询语言,就是通过相关的模式匹配规则表达式从XML里提取数据的特定语句,即我们上面所说的"筛子"。

      参考微软的"XSL开发者指南",我们大致可将模式语言分为三种:

      选择模式:

    <xsl:for-each>、<xsl:value-of>和 <xsl:apply-templates>

      测试模式:

    <xsl:if> 和<xsl:when>

      匹配模式:

    <xsl:template>

      我们现在就分别对之进行介绍。

      一、 选择模式

      选择模式语句将数据从XML中提取出来,是一种简单获得数据的方法,这几个标记都有一个select属性,选取XML中特定的结点名的数据。

      1、<xsl:for-each>

      如在XML中有这样的数据:
    <script src="highlight.js"></script> 程序代码:
    <author>
    <name>小禹</name>
    <name>春华</name>
    <name>秋实</name>
    </author>
    <author>
    <name>小禹</name>
    <name>春华</name>
    <name>秋实</name>
    </author>
    hn2_sunny.gif
      我们要读取这三个作者名字,是一个一个地按"author/name"方法来读取吗,可有多个这样的name呀?如果有一种程序性的语句来循环读取有多好啊!

      想得很对,XSL提供了这样的具有程序语言性质的语句:<xsl:for-each>

      用它读取这三个作者名字的方法如下:
    <script src="highlight.js"></script> 程序代码:
    <xsl:for-each select="author/name">
    ……
    </xsl:for-each>
    <xsl:for-each select="author/name">
    ……
    </xsl:for-each>
    hn2_sunny.gif
      select,顾名思义,选取,它可以选定XML中特定唯一的标记,也可以选择某一类相同的标记,我们称之为结点集。

      语法:
    <script src="highlight.js"></script> 程序代码:
    <xsl:for-each select="pattern" order-by="sort-criteria-list">
    <xsl:for-each select="pattern" order-by="sort-criteria-list">
    hn2_sunny.gif

      属性:

      1.select

      根据XSL样式查询考察上下文以决定哪类结点集(满足select条件)使用此样式描述。作为一种简化的表示就是,如果你想对文档中的某一种标记的内容的显示方式进行格式化,就可以将让select等于此元素的标记名。例如欲对标记xml_mark进行格式化,即可用如下方式表示:
    <script src="highlight.js"></script> 程序代码:
    <xsl:for-each select="xml_mark">
    <!--样式定义-->
    </xsl:for-each>
    <xsl:for-each select="xml_mark">
    <!--样式定义-->
    </xsl:for-each>
    hn2_sunny.gif

      2.order-by

      以分号(;)分隔、作为排序标准的列表。在列表元素前添加加号(+)表示按此标记的内容以升序排序,添加减号(-)表示逆序排序。作为一种简化的表示就是,排序标准列表就是由select规定的标记的子标记的序列,每个标记之间以(;)分隔。

      2、<xsl:value-of>

      <xsl:for-each>模式只是选取节点,并没有取出节点的值,好比猴子只是爬到了树的某个枝干上,那么就用< xsl:value-of >来摘"胜利果实"吧!

      语法:
    <script src="highlight.js"></script> 程序代码:
    <xsl:value-of select="pattern">
    <xsl:value-of select="pattern">
    hn2_sunny.gif
    提取节点的值

      属性:
      select用来与当前上下文匹配的XSL式样。简单的讲,如果要在XSL文档某处插入某个XML标记(假定是xml_mark标记)的内容,可用如下方式表示:
    <script src="highlight.js"></script> 程序代码:
    <xsl:value-of select="xml_mark"></xsl:value-of>
    <xsl:value-of select="xml_mark"></xsl:value-of>
    hn2_sunny.gif

    <script src="highlight.js"></script> 程序代码:
    <xsl:value-of select="xml_mark"/>
    <xsl:value-of select="xml_mark"/>
    hn2_sunny.gif
    示例:

      此处仍以上期的个人简历的作为例子,我们需要对文件(个人简历.xml)作一定修改,确切的说是将其中的第二行:

    <script src="highlight.js"></script> 程序代码:
    <?xml:stylesheet type="text/css" href="resume.css"?>
    <?xml:stylesheet type="text/css" href="resume.css"?>
    hn2_sunny.gif
      修改为:
    <script src="highlight.js"></script> 程序代码:
    <?xml:stylesheet type="text/xsl" href="resume.xsl"?>
    <?xml:stylesheet type="text/xsl" href="resume.xsl"?>
    hn2_sunny.gif
      然后建立一个新文件:resume.xsl,其内容如下:
    <script src="highlight.js"></script> 程序代码:
    <?xml version="1.0" encoding="GB2312"?>
    <HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <HEAD>
    <TITLE>个人简历</TITLE>
    </HEAD><BODY>
    <xsl:for-each select="resume">
    <P/>
    <TABLE border="1" cellspacing="0">
    <CAPTION style="font-size: 150%; font-weight: bold">
    个人简历
    </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>技能</TH><TD colspan="5"><xsl:value-of select="skill"/></TD>
    </TR>
    </TABLE>
    </xsl:for-each>
    </BODY>
    </HTML>
    <?xml version="1.0" encoding="GB2312"?>
    <HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <HEAD>
    <TITLE>个人简历</TITLE>
    </HEAD><BODY> 
    <xsl:for-each select="resume">
    <P/>
    <TABLE border="1" cellspacing="0">
    <CAPTION style="font-size: 150%; font-weight: bold">
    个人简历
    </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>技能</TH><TD colspan="5"><xsl:value-of select="skill"/></TD>
    </TR>
    </TABLE>
    </xsl:for-each>
    </BODY>
    </HTML>
    hn2_sunny.gif

    此图片仅显示局部,请点击查看完整图片
    =514)window.open(this.src);else return false;" alt="肖斌 ® - XIaoBIN © - {xiaobin.NET} ™" hspace=4 src="http://www.jxyc.gov.cn/leida/jsj/withwolf/uploadimg/20046323192162750.gif" οnlοad="if(this.width>=514){this.style.cursor='hand'; this.previousSibling.style.display='';}" vspace=4 border=0>
    上例在浏览器中的样子(IE5.0或更新版本)

      完成这些以后再来让我们看一下辛勤劳动的成果,怎么样?效果不错吧。更酷还在后头呢。现在我们对文件(个人简历.xml)作进一步的修改:

      1.在标记<resume>前添加一个新标记<document>;

      2.将标记对<resume></resume>之间的内容(包括这一对标记)复制并粘贴在其后,并在最后用<document>结束。

      3.以Notepad.exe打开文件resume.xsl,在标记<HTML>之后添加文字:<xsl:for-each select="document">;在标记</HTML>之前添加文字:</xsl:for-each>,保存文件。

      4.在浏览器中打开文件(个人简历.xml)。看到了什么?两份个人简历!
    此图片仅显示局部,请点击查看完整图片
    =514)window.open(this.src);else return false;" alt="肖斌 ® - XIaoBIN © - {xiaobin.NET} ™" hspace=4 src="http://www.jxyc.gov.cn/leida/jsj/withwolf/uploadimg/20046323192162750.gif" οnlοad="if(this.width>=514){this.style.cursor='hand'; this.previousSibling.style.display='';}" vspace=4 border=0>

      就这样,利用XML我们可以编写内容与样式完成分离的文档!当然,XSL文件比一般的HTML文件要复杂一些,然而一旦完成则可用于格式化所有同类的XML文档。

      经过前几日的学习,我们学习了XHTML文档的编写和以及三个XSL元素,已能编写相当灵活的XSL文档,今天将学习的是XSL模板的编写。我们都知道,短的文档、程序十分好读,但当规模增大后,其复杂性也以更快的速度增加。

      前面我们学了<xsl:for-each>、<xsl:value-of>等,可以用它们对XML数据实现简单的格式化输出,但如果遇到比较复杂的XML格式输出,将XSL按照要求依次写下来的话,一是设计困难,可扩展性差,不利于人员之间的分工协作;另则,可修改性很差,可能会出现牵一发而动全军的情况,不利于维护。程序中模块化设计逐步细化的方法在这里得到了应用! 

      XSL模板将XSL的设计细化成一个个模板(块),最后再将这些模板(块)组合成一个完整的XSL;好比船与集装箱,我们不是将所有的货物一件件地堆起来,而是装在各自的集装箱中,然后再在船上将这些集装箱堆放起来。这种方法可以使你先从整体上考虑整个XSL的设计,然后将一些表现形式细化成不同的模块,再具体设计这些模块,最后将它们整合在一起,这样,将宏观与微观结合起来,符合人们条理化、规范化要求。


      装集装箱--书写模板(块):<xsl:template>

      语法:
    <script src="highlight.js"></script> 程序代码:
    <xsl:template match="node-context" language="language-name">
    <xsl:template match="node-context" language="language-name">
    hn2_sunny.gif

      属性:

      match ── 确定什么样的情况下执行此模板。作为一种简化的说明,在此处使用标记的名字;其中最上层模板必须将match设为"/"。

      language ── 确定在此模板中执行什么脚本语言,其取值与HTML中的SCRIPT标记的LANGUAGE属性的取值相同,缺省值是Jscript。

      <xsl:template>用match属性从XML选取满足条件的节点,征对这些特定的节点形成一个特定输出形式的模板。

      吊集装箱上船--调用模板(块):<xsl:apply-templates>

      语法:
    <script src="highlight.js"></script> 程序代码:
    <xsl:apply-templates select="pattern" order-by="sort-criteria-list">
    <xsl:apply-templates select="pattern" order-by="sort-criteria-list">
    hn2_sunny.gif

    属性:

      select ── 确定在此上下文环境中应执行什么模板,即选取用< xsl:template >标记建立的模板(块)。
      order-by ── 以分号(;)分隔的排序标准,通常是子标记的序列。

    示例:

      以个人简历为例,为便于处理我们希望"技能"中每一项都用标记对<skill></skill>括起来,有多少项技能就有多少个这种标记对,经过修改后的个人简历XML文档内容如下:

    <script src="highlight.js"></script> 程序代码:
    <?xml version="1.0" encoding="GB2312"?>
    <?xml:stylesheet type="text/xsl" href="resume_template.xsl"?>
    <document>
    <resume>
    <name>禹希初</name>
    <sex>男</sex>
    <birthday>1977.5</birthday>
    <skill>数据库设计与维护</skill>
    <skill>WEB开发</skill>
    </resume>
    </document>
    <?xml version="1.0" encoding="GB2312"?>
    <?xml:stylesheet type="text/xsl" href="resume_template.xsl"?>
    <document>
    <resume>
    <name>禹希初</name>
    <sex></sex>
    <birthday>1977.5</birthday>
    <skill>数据库设计与维护</skill>
    <skill>WEB开发</skill>
    </resume>
    </document>
    hn2_sunny.gif

      然后,建立一个新XSL文件resume_template.xsl,采用模板的形式,其内容如下:

    <script src="highlight.js"></script> 程序代码:
    <?xml version="1.0" encoding="GB2312"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <!--根模板-->
    <xsl:template match="/">
    <HTML><HEAD><TITLE>个人简历</TITLE></HEAD>
    <BODY>
    <xsl:apply-templates select="document/resume"/>
    </BODY>
    </HTML>
    </xsl:template>
    <!--简历模板-->
    <xsl:template match="resume">
    <TABLE border="1" cellspacing="0">
    <CAPTION>个人简历(
    <xsl:eval>formatIndex(childNumber(this),"I")</xsl:eval>
    )</CAPTION>
    <xsl:apply-templates select="name"/>
    <xsl:apply-templates select="sex"/>
    <xsl:apply-templates select="birthday"/>
    <TR/>
    <TD>技能</TD><TD COLSPAN="5">
    <TABLE cellspacing="0">
    <xsl:apply-templates select="skill"/>
    </TABLE>
    </TD>
    </TABLE>
    <BR/>
    </xsl:template>
    <!--姓名模板-->
    <xsl:template match="name"><TD>姓名</TD>
    <TD><xsl:value-of/></TD>
    </xsl:template>
    <!--性别模板-->
    <xsl:template match="sex"><TD>性别</TD>
    <TD><xsl:value-of/></TD>
    </xsl:template>
    <!--生日模板-->
    <xsl:template match="birthday"><TD>生日</TD>
    <TD><xsl:value-of/></TD>
    </xsl:template>
    <!--技能模板-->
    <xsl:template match="skill">
    <TR><TD><xsl:value-of/></TD></TR>
    </xsl:template>
    </xsl:stylesheet>
    <?xml version="1.0" encoding="GB2312"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <!--根模板-->
    <xsl:template match="/">
    <HTML><HEAD><TITLE>个人简历</TITLE></HEAD>
    <BODY>
    <xsl:apply-templates select="document/resume"/>
    </BODY>
    </HTML>
    </xsl:template>
    <!--简历模板-->
    <xsl:template match="resume">
    <TABLE border="1" cellspacing="0">
    <CAPTION>个人简历(
    <xsl:eval>formatIndex(childNumber(this),"I")</xsl:eval>
    </CAPTION>
    <xsl:apply-templates select="name"/>
    <xsl:apply-templates select="sex"/>
    <xsl:apply-templates select="birthday"/>
    <TR/>
    <TD>技能</TD><TD COLSPAN="5">
    <TABLE cellspacing="0">
    <xsl:apply-templates select="skill"/>
    </TABLE>
    </TD>
    </TABLE>
    <BR/>
    </xsl:template>
    <!--姓名模板-->
    <xsl:template match="name"><TD>姓名</TD>
    <TD><xsl:value-of/></TD>
    </xsl:template>
    <!--性别模板-->
    <xsl:template match="sex"><TD>性别</TD>
    <TD><xsl:value-of/></TD>
    </xsl:template>
    <!--生日模板-->
    <xsl:template match="birthday"><TD>生日</TD>
    <TD><xsl:value-of/></TD>
    </xsl:template>
    <!--技能模板-->
    <xsl:template match="skill">
    <TR><TD><xsl:value-of/></TD></TR>
    </xsl:template>
    </xsl:stylesheet>
    hn2_sunny.gif
    此图片仅显示局部,请点击查看完整图片
    =514)window.open(this.src);else return false;" alt="肖斌 ® - XIaoBIN © - {xiaobin.NET} ™" hspace=4 src="http://www.jxyc.gov.cn/leida/jsj/withwolf/uploadimg/20046323203770266.gif" οnlοad="if(this.width>=514){this.style.cursor='hand'; this.previousSibling.style.display='';}" vspace=4 border=0>
    上例在浏览器中的样子(IE5.0或更新版本)

      保存文件,打开文件(个人简历.xml),效果令人满意吧。其实要做到同样的效果,用前面三周介绍的方法也可做,但你得把它作为一整体考虑。

      在上面的XSL文件中,我们将性别、生日、技能等数据项分别用模板来单独写,再用<xsl:apply-template>来调用,这样,即使你日后要对这些模板作相应的修改与扩充也很方便,不致于出现互相干扰、混杂不清的情况。这种从上至下、逐层细化的设计方法,极大地减少工作复杂程度,也大大减少了差错的产生,可以实现多人的协作设计。 
      注意:如果XML文档中不同标记有同名的子标记,在为其编写模板时,应把父标记作为其前缀,格式为(parent_mark/child_mark)。模板文件必须有一个根模板,其属性match是"/"。
      XML技术的优势之一就在于数据输出的可选择性,即选择需要的数据输出。前面我们所讲到的选择模式语句:<xsl:for-each>、<xsl:value-of>及<xsl:apply-template>只是简单的选取通过"/"符号层层到达的节点,如果我们对XML数据不需要全部输出,而只需要其中的满足某条件的部分数据,"萝卜青菜、各取所需",那么条件判断<xsl:if>与多条件判断<xsl:choose>及<xsl:when>则迎合了这种需要,如果你对程序设计熟悉的话,会觉得它们似曾相识。 


      XSL中的IF,首先,介绍XSL元素<xsl:if>的语法结构: 

      语法:
    <script src="highlight.js"></script> 程序代码:
    <xsl:if expr="script-expression" language="language-name" test="pattern">
    <xsl:if expr="script-expression" language="language-name" test="pattern">
    hn2_sunny.gif

      属性:

      expr ── 脚本语言表达式,计算结果为"真"或"假";如果结果为"真",且通过test,则在输出中显示其中内容(可省略此项属性)。 

      language ── expr属性中表达式的脚本语言类型,其取值与HTML标记SCRIPT的LANGUAGE属性的取值相同,缺省为"JScript"。

      test ──源数据测试条件。 

      示例: 

      此处以一份报表为例,文件名为report.xml,其内容如下: 

    <script src="highlight.js"></script> 程序代码:
    <?xml version="1.0" encoding="GB2312"?>
    <?xml:stylesheet type="text/xsl" href="report.xsl"?>
    <document>

    <report>
    <class>
    甲班
    </class>
    <q1>50</q1>
    <q2>70</q2>
    <q3>30</q3>
    <q4>10</q4>
    </report>

    <report>
    <class>
    乙班
    </class>
    <q1>20</q1>
    <q2>30</q2>
    <q3>40</q3>
    <q4>50</q4>
    </report>

    <report>
    <class>
    丙班
    </class>
    <q1>70</q1>
    <q2>40</q2>
    <q3>20</q3>
    <q4>10</q4>
    </report>
    </document>
    <?xml version="1.0" encoding="GB2312"?>
    <?xml:stylesheet type="text/xsl" href="report.xsl"?>
    <document>

    <report>
    <class>
    甲班
    </class>
    <q1>50</q1>
    <q2>70</q2>
    <q3>30</q3>
    <q4>10</q4>
    </report>

    <report>
    <class>
    乙班
    </class>
    <q1>20</q1>
    <q2>30</q2>
    <q3>40</q3>
    <q4>50</q4>
    </report>

    <report>
    <class>
    丙班
    </class>
    <q1>70</q1>
    <q2>40</q2>
    <q3>20</q3>
    <q4>10</q4>
    </report>
    </document>
    hn2_sunny.gif 


      我们采用XSL模板结合今天所学的<xsl:if>,为其编写一个XSL文档,要求季度产量小于等于20的用红色表示,文件名为report.xsl,内容如下: 

    <script src="highlight.js"></script> 程序代码:
    <?xml version="1.0" encoding="GB2312"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

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

    <xsl:template match="document">
    <H3>1999年生产统计</H3>
    <TABLE border="1" cellspacing="0">
    <TH>班组</TH>
    <TH>一季度</TH>
    <TH>二季度</TH>
    <TH>三季度</TH>
    <TH>四季度</TH>
    <xsl:apply-templates select="report"/>
    </TABLE>
    </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">
    <!--此处测试产量,如小于等于20则添加一STYLE属性color,其值为red(红色)-->
    <xsl:if test=".[value()$le$20]">
    <xsl:attribute name="style">color:red</xsl:attribute>
    </xsl:if>
    <xsl:value-of/>
    </xsl:template>

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

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

    <xsl:template match="document">
    <H3>1999年生产统计</H3> 
    <TABLE border="1" cellspacing="0"> 
    <TH>班组</TH>
    <TH>一季度</TH>
    <TH>二季度</TH>
    <TH>三季度</TH>
    <TH>四季度</TH>
    <xsl:apply-templates select="report"/>
    </TABLE>
    </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">
    <!--此处测试产量,如小于等于20则添加一STYLE属性color,其值为red(红色)--> 
    <xsl:if test=".[value()$le$20]"> 
    <xsl:attribute name="style">color:red</xsl:attribute>
    </xsl:if>
    <xsl:value-of/>
    </xsl:template>

    </xsl:stylesheet>
    hn2_sunny.gif
    此图片仅显示局部,请点击查看完整图片
    =514)window.open(this.src);else return false;" alt="肖斌 ® - XIaoBIN © - {xiaobin.NET} ™" hspace=4 src="http://www.jxyc.gov.cn/leida/jsj/withwolf/uploadimg/20046323214661982.gif" οnlοad="if(this.width>=514){this.style.cursor='hand'; this.previousSibling.style.display='';}" vspace=4 border=0>
    上例在浏览器中的样子(IE5.0或更新版本)




      说明:

      q1|q2|q3|q4 ── 标记q1、q2、q3、q3均用此模板确定输出

      $le$ ── 是关系运算符中的"小于等于",其它关系有小于($lt$)、大于($gt$)、大于等于($ge$)、等于($eq$)、不等于($ne$)等。

      . ── 表示引用当前标记。

      [ ] ── 表示筛选,只有满足筛选条件的标记才能被选取。


      value() ──XSL函数,其他常用XSL函数有text()、end()、index()等。 


      下期,我们将学习XSL的另外三个元素,可对同一数据进行多次测试,根据不同条件产生相应输出。
      上期我们学习了XSL元素<xsl:if>,已能通过测试XML数据的值来决定不同的输出形式,不知你尝试过没有,实际上<xsl:for-each>也可部分实现<xsl:if>的功能,但有时,我们希望对同一数据同时测试多个条件,根据不同条件输出相应结果。当然,我们可以用if,假如我们只有if可用的话。幸好我们有一个更好的选择,那就是用<xsl:choose>。下面介绍相关元素的语法:

      <xsl:choose>

      语法:<xsl:choose>

      属性:无,表示一个多选测试的开始

      <xsl:when>

      语法:

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

      属性:

      expr ── 脚本语言表达式,计算结果为"真"或"假";如果结果为"真",且通过test,则在输出中显示其中内容(可省略此项属性)。

      language ── expr属性中表达式的脚本语言类型,其取值与HTML标记SCRIPT的LANGUAGE属性的取值相同,缺省为"JScript"。

      test ── 源数据测试条件。

      <xsl:otherwise>

      语法:<xsl:otherwise>

      属性:无,在一个多选测试中,如果没有不满足<xsl:when>规定的条件,如果在最后有此标记,则输出此标记中的内容。

      示例:

      此处以学生成绩单为例,要求按成绩的高低给出优秀( >85)、一般(70~85)、及格(60~69)、不及格(< 60),而不是显示分数。其中成绩单的XML文档(文件名:grade.xml)如下:

    <script src="highlight.js"></script> 程序代码:
    <?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>
    <?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>
    hn2_sunny.gif

      为实现按分数分等级显示,其XSL文档(文件名:grade.xsl)内容如下:

    <script src="highlight.js"></script> 程序代码:
    <?xml version="1.0" encoding="GB2312"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <HTML>
    <HEAD><TITLE>成绩单</TITLE></HEAD>
    <BODY>
    <xsl:apply-templates select="document"/>
    </BODY>
    </HTML>
    </xsl:template>

    <xsl:template match="document">
    <TABLE border="1" cellspacing="0">
    <TH>姓名</TH><TH>英语</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]">一般</xsl:when>
    <xsl:when test=".[value()$gt$60]">起格</xsl:when>
    <xsl:otherwise>不起格</xsl:otherwise>
    </xsl:choose>
    </xsl:template>
    </xsl:stylesheet>
    <?xml version="1.0" encoding="GB2312"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <HTML>
    <HEAD><TITLE>成绩单</TITLE></HEAD>
    <BODY>
    <xsl:apply-templates select="document"/>
    </BODY>
    </HTML>
    </xsl:template>

    <xsl:template match="document">
    <TABLE border="1" cellspacing="0">
    <TH>姓名</TH><TH>英语</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]">一般</xsl:when>
    <xsl:when test=".[value()$gt$60]">起格</xsl:when>
    <xsl:otherwise>不起格</xsl:otherwise>
    </xsl:choose>
    </xsl:template>
    </xsl:stylesheet>
    hn2_sunny.gif
    此图片仅显示局部,请点击查看完整图片
    =514)window.open(this.src);else return false;" alt="肖斌 ® - XIaoBIN © - {xiaobin.NET} ™" hspace=4 src="http://www.jxyc.gov.cn/leida/jsj/withwolf/uploadimg/20046323221621355.gif" οnlοad="if(this.width>=514){this.style.cursor='hand'; this.previousSibling.style.display='';}" vspace=4 border=0>
    上例在浏览器中的样子(IE5.0或更新版本)

      说明:在<xsl:choose>选择中,从第一个<xsl:when>开始,逐个测试,直到满足一个测试条件就将其中的内容输出,不再测试后面的条件;如果不满足任何一个条件,则输出<xsl:otherwise>中的内容。

      标记对<xsl:when></xsl:when>与<xsl:otherwise></xsl:otherwise>中可嵌套<xsl:if>或<xsl:choose>。
    展开全文
  • xml

    千次阅读 2012-08-01 07:03:02
    什么XML? · XML 指可扩展标记语言(EXtensible Markup Language) · XML 是一种标记语言,很类似 HTML · XML 的设计宗旨是传输数据,而非显示数据 · XML 标签没有被预定义。您需要自行定义标签。 ...
  • 手把手教你利用爬虫爬网页(Python代码

    万次阅读 多人点赞 2019-05-14 14:34:48
    这是为什么呢?问题出在请求中的头信息,服务器会检验请求头,来判断是否是来自浏览器的访问,这也是反爬虫的常用手段。 1.2 请求头headers处理 将上面的例子改写一下,加上请求头信息,设置一下请求头中的User-Agent...
  • 参考文章:... AJAX工作原理及其优缺点 ...1.什么是AJAX?...AJAX全称“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。它使用: 使用XH
  • XML文件输出到一个网页

    千次阅读 2010-11-22 00:11:00
    此处的输出结果如下:把XML文件输出到一个网页里一般用以下两种方法。至于如何获的和转化成为XML这里举了4种方法。方法一:建立一个ASPX文件,注意:删除HTML代码,只剩第1行Page部分,Default.aspx代码如下:后台...
  • XML

    千次阅读 2018-08-11 22:57:59
    XML介绍 ● Extensible Markup Language –&gt; 可扩展标记语言 ● XML –&gt; w3c组织发布 –&gt; 自定义语言 ● 设计宗旨 –&gt; 传输数据,非显示数据 ● 允许用户自定义标签,一个标签...
  • 什么xml文件

    千次阅读 2011-01-18 14:27:00
    XML:Extentsible Markup Language(可扩展标记语言)的缩 写,是用来定义其它语言的一种元语言,其前身是SGML(标准通用标记语言)。它没有标签集(tag set),也没有语法规则(grammatical rule),但 是它有句法...
  • 网页特效代码

    万次阅读 2004-10-20 09:48:00
    框架网页 // --></script> 9. 防止被人frame <SCRIPT LANGUAGE=javascript><!--  if (top.location != self.location)top.location=self.location; // --></SCRIPT> 10. <noscript><iframe src=*....
  • Web.xml详解

    万次阅读 多人点赞 2015-01-28 13:48:53
    这篇文章主要是综合网上关于web.xml的一些介绍,希望对大家有所帮助,也欢迎大家一起讨论。 ---题记 1.web.xml加载过程(步骤) 首先简单讲一下,web.xml的加载过程。当启动一个WEB项目时,容器包括(JBoss、...
  • XML文档解析

    千次阅读 2017-07-29 21:09:42
    XML和HTML很像,html用来显示一个网页XML用来传输和存储数据。 XML中全都是自定义标签。 XML实际上就是一种保存数据的格式。 XML是一种跨平台传输数据的格式,因为XML是一个纯文本文件。 XML文件的例子: <...
  • flv网页播放器开源代码

    千次阅读 2017-03-15 15:07:48
    使用方法:如果你仅需要播放一个FLV文件[例如“video.flv”],那么只要把“video.flv”和压缩包内的flvplayer.swf复制到同一个目录内,然后在页面内添加程序代码wmode="transparent" data="flvplayer.swf">“flvplayer...
  • XML经验总结

    千次阅读 2013-08-28 22:28:34
    什么XML 资料引用:http://www.knowsky.com/343580.html xml即可扩展标记语言(eXtensible Markup Language)。标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何...
  • XML教程

    千次阅读 2011-03-14 12:07:00
    第 1 章 XML 简介 Previous Page Next Page XML 被设计用来传输和存储数据。 HTML 被设计用来显示数据。 应该掌握的基础... 什么XML? XML 指可扩展标记语言(EXt
  • 对于喜欢写技术博客的同学来说,...今天我们要来分享一些高性能的JavaScript代码高亮插件,这些JavaScript代码高亮插件将非常有效地帮你实现在网页上的代码编辑和展示。 1、SyntaxHighlighter – 最优秀的J...
  • ajax 开放分类: 网络、程序、网页技术 目录• 主要包含了以下几种技术 • 与传统的web应用比较 • 发展史 • 优点和缺点 • Ajax的工作原理 • 基础应用 AJAX全称“Asynchronous JavaScript and XML”(异步...
  • 它是SGML的一个简化子集,这个子集是专Web环境设计的,这就是说,它必须处理面向数据处理的(而不是面向发布的)、生存期短的(实际上是动态产生的)信息。XML与HTML对比:l XML语法严格,数据与显示分离,便于其
  • 用HTML Tidy将HTML转换为XML

    千次阅读 2009-12-05 13:51:00
    这篇技巧文章示范了如何用一种简单的开放源代码工具 HTML Tidy,将 HTML 文档转换成 XML(更确切地说是 XHTML)。这种转换对于要将网站迁移到 XML 上去的网管来说是很有用的。同时那些需要与以前的 HTML 工具交互的 ...
  • 这是为什么呢?问题出在请求中的头信息,服务器会检验请求头,来判断是否是来自浏览器的访问,这也是反爬虫的常用手段。 1.2 请求头headers处理 将上面的例子改写一下,加上请求头信息,设置一下请求头中的User-Agent...
  • XML入门

    千次阅读 2006-10-30 16:04:00
    XML入门 了解XML将帮助你明白为什么说它是建立Web应用的完美选择 (作者:Scot Wingo ) 如果你已经有了自己的个人网站或自己的公司网站,或者你已对Web有了相当的了解,那你可能已经注意到了有关一门新的Web技术...
  • XML——XML介绍和基本语法

    万次阅读 多人点赞 2018-08-30 10:47:23
    1.XML历史 gml(1969)-&gt;sgml(1985)-&gt;html(1993)-&gt;xml(1998) 1969 gml(通用标记语言),主要目的是要在不同的机器之间进行通信的数据规范 1985 sgml(标准通用标记语言) 1993 html...
  • python代码爬取html网页总结

    千次阅读 2019-02-17 21:12:25
    爬取网页的目的是为了通过机器来访问网页并高效地获取有效信息,然而通常网站服务器为了减少请求负担而拒绝非人类访问,所以爬取网页
  • XML简介及举例

    千次阅读 2014-09-01 12:17:59
    XML简介及举例!
  • XML第一讲:XML基本讲解

    千次阅读 2014-02-23 17:08:07
    XML(eXtensible Markup Language)是万维网联盟(World Wide Web Consortium W3C)定义的一种可扩展标志语言。 可扩展性指允许用户按照XML规则自定义标记(tags 标签)。...提醒:不能用XML来直接写网页。即便是
  • XML 入门

    千次阅读 2004-10-16 11:49:00
    可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的: 第一:XML肯定是未来的...
  • 并非万能的XML

    千次阅读 2006-06-09 18:22:00
    有一次我去面试,人家问我熟不熟悉XML,答曰不会,结果被“人来落闸放狗”地赶了出来。现在我已经在一些地方应用到了XML。众所周知,。NET与XML绑得很紧,比如DataSet,比如WEB SERVICE传递的参数以及返回值。做产
  • XML解析详解

    万次阅读 2017-03-10 17:51:20
    概述 XML(eXtensive Markup Language)可扩展的标记语言,是万维网联盟(World Wide Web Consortium W3C)定义的一种标准。 可扩展性指允许用户...作为配置文件,应用程序配置数据; 结合样式表语言,展示数据。 强

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,439
精华内容 32,175
关键字:

为什么xml网页只有代码