﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-温馨小小窝-随笔分类-工作相关</title><link>http://www.cnitblog.com/wjh1025/category/1242.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 30 Sep 2011 16:24:06 GMT</lastBuildDate><pubDate>Fri, 30 Sep 2011 16:24:06 GMT</pubDate><ttl>60</ttl><item><title>RJ45接头接法</title><link>http://www.cnitblog.com/wjh1025/archive/2006/06/20/12551.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Tue, 20 Jun 2006 04:36:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2006/06/20/12551.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/12551.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2006/06/20/12551.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/12551.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/12551.html</trackback:ping><description><![CDATA[
		<p align="center">
				<font color="#008000" size="6">
						<strong>RJ45接头接法</strong>
				</font>
		</p>
		<p>
				<font color="#008000">关于双绞线的色标和排列方法是有统一的国际标准严格规定的，现在常用的是TIA/EIA568B。在打线时应使用</font>
		</p>
		<p>
				<font color="#008000">如下的顺序：(TIA/EIA568B) <br />1-&gt;橙白 <br />2-&gt;橙 <br />3-&gt;绿白 <br />4-&gt;蓝 <br />5-&gt;蓝白 <br />6-&gt;绿 <br />7-&gt;棕白 <br />8-&gt;棕 <br />而且，使用电缆两头一对一的连接方式， 会使一组信号（负电压信号）通过不绞合在一起的两根芯线传输，</font>
		</p>
		<p>
				<font color="#008000">造成极大的近端串扰（NEXT-&gt; <br />Near-end-crosstalk) 所以应按照国际标准打线！！ <br />RJ45接双绞线定义为： ( 10BaseT,100BaseTX ）<br />1 Rx+ <br />2 Rx- <br />3 Tx+ <br />6 Tx- <br />其余4,5,7,8都NA </font>
		</p>
		<p>
				<font color="#008000">(以下是另一作者的文章,请参考)<br />AMP双绞电缆内有8根电线，分为4对，每一对就是一对双绞线，依次为：（橙，白/橙）；（绿，白/绿）；（</font>
		</p>
		<p>
				<font color="#008000">棕，白/棕）；（蓝，白/蓝）（“白/橙”指白线上有橙色的色点）<br />2、如果用于电脑与集线器（Hub）相连，请按下列顺序排线：<br />橙；白/橙；绿；白/棕；棕；白/绿；蓝；白/蓝<br />3、如果用于两台电脑直接相连，（不经过集线器）则一端如下接：<br />橙；白/橙；绿；白/棕；棕；白/绿；蓝；白/蓝<br />另一端如下排线：<br />绿；白/绿；橙；白/棕；棕；白/橙；蓝；白/蓝<br />不管如何接线，最后完成后用RJ-45测线仪测试时，4个绿灯都应依次闪烁。<br />100BASE-T4 RJ-45对双绞线的规定如下：<br />1、2用于发送，3、6用于接收，4、5，7、8是双向线。<br />1、2线必须是双绞，3、6双绞，4、5双绞，7、8双绞。<br />用于HUB到电脑时，按顺序接好即可。<br />如果用于两台电脑直接相连，需将一边的3、6接另一边的1、2，1、2接另一边的3、6。也就是将一端的发送</font>
		</p>
		<p>
				<font color="#008000">接另一边的接收，接收接另一边的发送。 </font>
		</p>
		<p>
				<font color="#008000">
						<br />
				</font> </p>
<img src ="http://www.cnitblog.com/wjh1025/aggbug/12551.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2006-06-20 12:36 <a href="http://www.cnitblog.com/wjh1025/archive/2006/06/20/12551.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>大量XML书籍下载！呵呵，会有帮助的啊</title><link>http://www.cnitblog.com/wjh1025/archive/2006/01/05/6026.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Thu, 05 Jan 2006 09:37:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2006/01/05/6026.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/6026.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2006/01/05/6026.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/6026.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/6026.html</trackback:ping><description><![CDATA[<A href="http://xml.org.cn/dispbbs.asp?boardID=35&amp;ID=6192">http://xml.org.cn/dispbbs.asp?boardID=35&amp;ID=6192</A><img src ="http://www.cnitblog.com/wjh1025/aggbug/6026.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2006-01-05 17:37 <a href="http://www.cnitblog.com/wjh1025/archive/2006/01/05/6026.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习中---在SVG中使用滤镜效果和输出文字(转载)</title><link>http://www.cnitblog.com/wjh1025/archive/2006/01/01/5959.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Sun, 01 Jan 2006 05:18:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2006/01/01/5959.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/5959.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2006/01/01/5959.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/5959.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/5959.html</trackback:ping><description><![CDATA[<TABLE width=728 align=center>
<TBODY>
<TR>
<TD align=middle>
<H2><FONT color=#0f3ccd>在SVG中使用滤镜效果和输出文字</FONT></H2><BR><B>孟宪会</B> </TD></TR>
<TR>
<TD align=right>01-12-18 下午 02:14:13<BR>
<HR width=718 color=#f46240 SIZE=1>
</TD></TR></TBODY></TABLE><BR>
<TABLE width=728 align=center>
<TBODY>
<TR>
<TD vAlign=top width=600>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>为了使图像更生动形象，可以在SVG中使用滤镜效果和输出文字的基本方法。</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14><B>一、在SVG中使用滤镜效果</B></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>在SVG中，我们可以直接对基本图象和文字使用这些效果，在SVG使用滤竟效果就和Adobe Photoshop、Macromedia Fireworks中一样，比如：阴影、高斯模糊、金属效果，颜色渐变等，SVG中的滤镜效果有feBlend、feColorMatrix、feComponentTransfer、feComposite、feConvolveMatrix、feDiffuseLighting、feDisplacementMap、feFlood、feGaussianBlur、feImage、feMerge、feMorphology、feOffset、feSpecularLighting、feTile、feTurbalance、feDistantLight、fePointLight、feSpotLight等。我们可以单独使用这些滤镜效果，也可以组合起来使用。由于这些滤镜的组合很多，我们很难在较短的篇幅里全部讲述，我们只是举其中的几个例子，来让初步认识一下在SVG中如何使用滤镜。</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>要在SVG中使用滤镜效果，必须把滤镜的定义嵌套在&lt;defs&gt;标记中，顾名思义，defs就是定义(definitions)的意思，它的作用就是定义一些特殊的元素，滤镜的定义也必须放到其中。定义一个滤镜效果，必须使用&lt;filter&gt;标记，同时必须指定一个id名（即唯一标识符），用以标识这个效果是应用到哪些图像上，下面举个具体的例子来加以说明：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;?xml version="1.0" standalone="no"?&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;svg width="400" height="400"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;filter id="Gaussian_Blur_Test_for_Mengxianhui"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feGaussianBlur in="SourceGraphic" stdDeviation="2"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/filter&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;rect x="59" y="77" width="163" height="34" style="filter:url(#Gaussian_Blur_Test_for_Mengxianhui);fill:rgb(128,128,255);stroke:rgb(128,0,128);stroke-width:5;" /&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/svg&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>在上面的例子中，&lt;filter id="Gaussian_Blur_Test_for_Mengxianhui"&gt;标记定义了一个高斯模糊的滤镜效果，id值在整个文件中应当是唯一的，文档中的其它元素也可以通过这个id值来重复使用这个滤镜，换句话说，&lt;filter id="Gaussian_Blur_Test_for_Mengxianhui"&gt;就相当于一个模板，可以多次被调用。当我们要对某元素使用这个滤镜时，采用的语法是：filter：url(#Gaussian_Blur_Test_for_Mengxianhui)，并把它做为style属性的一部分，圆括号的“#”不能省略，它后面的文字就是滤镜定义中的id值。滤镜效果的定义放到&lt;feGaussianBlur in="SourceGraphic" stdDeviation="2"/&gt;标记中，前导符“fe”在所有的滤镜中都有，是filter effect的缩写。例子中的滤镜效果是高斯模糊，stdDeviation属性描述模糊的强弱，数值越大，就越模糊。in="SourceGraphic"定义模糊模糊的效果是对整个图像，若使用SourceAlpha，则表示模糊效果是对图像的alpha通道的，in属性除了用在结果输出之外只有这两种可选择使用的值，在其它滤镜里也是这样，下面也将会讲到。高斯模糊中的stdDeviation这个属性值描述高斯模糊的偏离大小，如果给出两个属性值，则前一个参数代表沿x轴方向的偏离值，后一个值代表沿y轴的偏离值；如果给出一个参数，则代表沿x，y轴的偏离值是一样的。上面的例子的效果如下图所示：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>
<DIV align=center><IMG height=49 src="http://www.ccw.com.cn/htm/app/salon/01_12_18_3a.jpg" width=179></DIV></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>前面已经提到，对一个SVG图像来说，可以组合应用多个滤镜效果，下面看一个紊乱的效果：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;?xml version="1.0" standalone="no"?&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;svg width="100%" height="100%"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;filter id="Turbulence"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feTurbulence baseFrequency="0.03 0.02" numOctaves="5" type="turbulence" result="turbulenceOutput"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feComposite in="turbulenceOutput" in2="SourceAlpha" operator="in"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/filter&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;path d="M193.1 79.292 C224.16 88.7968 242.127 121.499 232.627 154.414 C223.127 187.328 239.995 220.003 271.913 229.504 C303.83 239.006 336.35 218.61 345 188.876 C323.124 264.909 248.755 285.576 198.994 270.349 C149.231 255.12 98.1789 196.096 120.144 119.992 C129.376 88.0081 162.039 69.7869 193.1 79.292 zM167.341 136.242 C167.341 141.144 170.673 145.311 176.03 145.311 C181.386 145.311 184.242 140.899 184.242 136.242 C184.242 131.584 180.796 127.762 175.91 127.785 C171.025 127.809 167.341 131.339 167.341 136.242 z"</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>style="fill:rgb(192,192,255);stroke:rgb(130,0,61);stroke-width:1;filter:url(#Turbulence);" /&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/svg&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>这个例子里使用了feTurbulence和feComposite滤镜的效果，在SVG中，滤镜可以使用result和in属性进行滤镜的相互嵌套。例子中，在turbulence滤镜里使用了result="turbulenceOutput"属性，表示这个滤镜的结果要输出到别的滤镜中去，feComposite使用in="turbulenceOutput"属性来使用上一个滤镜的输出结果，由于在这个滤镜中已经使用了in属性，因此，SVG提供了in2属性供我们使用，in和in2的作用是一样的；例子中in2="SourceAlpha"属性定义了这个滤镜的单一通道；operator 属性是feComposite滤镜特有的，用来描述合成的类型，可设定over，in，out，atop，xor，arithmetic中的任一个值，大家可以替换不同的值来查看效果的变化。例子中的baseFrequency属性用来描述混沌出现的频率，有x、y两方向的值可以设置。numOctaves属性设定混沌的间隔，可选1-8，默认为1。上面例子的结果如下：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>
<DIV align=center>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE><IMG src="http://www.ccw.com.cn/htm/app/salon/01_12_18_3b.jpg"></DIV></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>下面是一个比较复杂的例子，大家可以看看他的效果：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;svg width="100%" height="100%"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;filter id="metallic"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feGaussianBlur result="blurredAlpha" in="SourceAlpha" stdDeviation="3"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feOffset result="offsetBlurredAlpha" in="blurredAlpha" dx="2" dy="1"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feDiffuseLighting result="bumpMapDiffuse" in="blurredAlpha" surfaceScale="5" diffuseConstant="0.5" style="lighting-color:rgb(255,255,255)"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feDistantLight azimuth="135" elevation="60"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/feDiffuseLighting&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feComposite result="litPaint" in="bumpMapDiffuse" operator="arithmetic" k1="1" k2="0" k3="0" k4="0" in2="SourceGraphic"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feSpecularLighting result="bumpMapSpecular" in="blurredAlpha" surfaceScale="5" specularConstant="0.5" specularExponent="10" style="lighting-color:rgb(255,255,255)"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feDistantLight azimuth="135" elevation="60"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/feSpecularLighting&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feComposite result="litPaint" in="litPaint" operator="arithmetic" k1="0" k2="1" k3="1" k4="0" in2="bumpMapSpecular"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feComposite result="litPaint" in="litPaint" operator="in" in2="SourceAlpha"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feMerge&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feMergeNode in="offsetBlurredAlpha"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feMergeNode in="litPaint"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/feMerge&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/filter&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;path d="M233.642 288 C249.9 265.728 318 231.266 318 195.613 C318 133.896 247.069 148.581 232.993 172.957 C218.041 147.832 149 137.805 149 195.613 C149 232.135 219.429 265.911 233.642 288 z" style="filter:url(#metallic);fill:rgb(255,38,255);stroke:rgb(11,11,13);stroke-width:1;" /&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/svg&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>上面的例子的结果如下：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>
<DIV align=center><IMG src="http://www.ccw.com.cn/htm/app/salon/01_12_18_3c.jpg"></DIV></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>下面我们看看渐变效果。渐变效果是指从一种颜色到另一种颜色的平滑过渡。SVG中有两种渐变方式：直线渐变和放射渐变。</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>直线渐变&lt;linearGradient&gt;有水平渐变、垂直渐变和任意角度的渐变三种情况，如果y1、y2的值相同，而x2、x2的值不同，则代表水平渐变；y1、y2不同而x1、x2相同，达标垂直渐变；如果x1、x2，y1、y2都不同，则是角度渐变。颜色可以是两种或多种颜色的组合，每种颜色都要用&lt;stop&gt;标记来指定，它有两个属性：stop-color和stop-opacity，分别表示颜色和透明度。</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;?xml version="1.0" standalone="no"?&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>"http：//www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;svg width="100%" height="100%"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;linearGradient id="Linear_Gradient_Test_For_Mengxianhui" x1="0%" y1="100%" x2="0%" y2="0%"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;stop offset="0%" style="stop-color：yellow；stop-opacity：1"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;stop offset="50%" style="stop-color：red；stop-opacity：1"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;stop offset="100%" style="stop-color：blue；stop-opacity：1"/&gt; </TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/linearGradient&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;ellipse cx="200" cy="200" rx="80" ry="60" style="fill：url(#Linear_Gradient_Test_For_Mengxianhui)"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/svg&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>上例中&lt;linearGradient&gt;标记定义了一个直线渐变，id属性定义该渐变的唯一标识，x1、y1定义了渐变的开始点坐标，x2、y2定义了渐变的结束点坐标，标记&lt;stop&gt;定义每一种颜色的信息，offset属性渐变色的开始或结束位置。该例子的结果如下：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>
<DIV align=center><IMG src="http://www.ccw.com.cn/htm/app/salon/01_12_18_3d.jpg"></DIV></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>放射渐变由&lt;radialGradient&gt;标记定义，例子如下：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;?xml version="1.0" standalone="no"?&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;svg width="420" height="220"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;radialGradient id="fade-to-black" cx="0%" cy="0%" r="20%" spreadMethod="reflect" gradientUnits="objectBoundingBox"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;stop offset="0%" style="stop-color:#F8C806;stop-opacity:1"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;stop offset="50%" style="stop-color:#000099;stop-opacity:1"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;stop offset="100%" style="stop-color:#458900;stop-opacity:1"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/radialGradient&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;rect x="10" y="10" width="400" height="200" style="fill:url(#fade-to-black);stroke:rgb(0,0,128); stroke-width:0" /&gt; </TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/svg&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>上面的cx，cy代表椭圆的圆心，r及rx，ry代表x方向和y方向的半径，spreadMethod代表平铺的方式，有pad，reflect和repeat三种方式。为了理解个参数的意义，您可以试着改变个参数的值，看看它们是如何控制的。该例子的结果如下：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>
<DIV align=center><IMG src="http://www.ccw.com.cn/htm/app/salon/01_12_18_3e.jpg"></DIV></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14><B>二、在SVG中输出文字</B></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>在SVG中，文字都被看成是字符数据，所有的文字放到&lt;text&gt;标记中，但允许使用&lt;tspan&gt;标记进行嵌套，文字也是使用x，y属性在浏览器上进行定位的。例如：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;?xml version="1.0" standalone="no"?&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;svg width="100%" height="100%"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;text x="100px" y="120px" </TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>style="fill:rgb(0,0,0);font-size:36;font-family:Arial"&gt;WelCome To Mxh's Colorful World!&lt;/text&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;text x="100px" y="160px" </TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>style="fill:rgb(255,0,0);font-size:36;font-family:Arial"&gt;http://lucky.myrice.com!&lt;/text&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/svg&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>上面例子的结果如下：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>
<DIV align=center><IMG src="http://www.ccw.com.cn/htm/app/salon/01_12_18_3f.jpg"></DIV></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>SVG中的文字是放在一个不可见的矩形区域里，因此，那个矩形区域内的文字被当成一行来处理，而不是象通常的浏览器那样把文字折行显示，要显示多行文字，就必须使用多个&lt;text&gt;标记。当然，我们也可以对文字使用样式，fill属性定义文字的填充颜色，font-size定义文字的字号大小，font-family属性定义文字的字型，SVG中的文字样式和CSS2中的文字样式一样，也有font-style，font-stretch等属性，Web开发人员对文字的显示有了更多的选择。</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>文字也可以有透明度和图案填充，下面的例子是一个渐变的效果：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;?xml version="1.0" standalone="no"?&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;svg width="100%" height="100%"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;linearGradient id="violet-orange" x1="0%" y1="0%" x2="100%" y2="0%"</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>spreadMethod="pad" gradientUnits="objectBoundingBox"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;stop offset="0%" style="stop-color:rgb(216,192,216);stop-opacity:1"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;stop offset="100%" style="stop-color:rgb(175,23,87);stop-opacity:1"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/linearGradient&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;rect x="49" y="29" width="450" height="41"</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>style="fill:rgb(0,0,0);stroke:none;stroke-width:1"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;text x="70px" y="56px" </TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>style="fill:url(#violet-orange); font-size:20;font-weight:bold;font-family:Arial"&gt;Welcome to Meng Xianhui's Colorful World!&lt;/text&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/svg&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>结果如下：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>
<DIV align=center><IMG src="http://www.ccw.com.cn/htm/app/salon/01_12_18_3g.jpg"></DIV></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>此外，文字也可以使用滤镜效果，下面的例子就是显示阴影效果的文字：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;?xml version="1.0" standalone="no"?&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;svg width="100%" height="100%"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;filter id="Drop_Shadow" filterUnits="objectBoundingBox" x="-10%" y="-10%" width="150%" height="150%"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feGaussianBlur in="SourceAlpha" stdDeviation="3" result="blurredAlpha"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feOffset in="blurredAlpha" dx="3" dy="3" result="offsetBlurredAlpha"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feFlood result="flooded" style="flood-color:rgb(99,7,7);flood-opacity:0.65"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feComposite in="flooded" operator="in" in2="offsetBlurredAlpha" result="coloredShadow"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;feComposite in="SourceGraphic" in2="coloredShadow" operator="over"/&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/filter&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/defs&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;text x="126px" y="155px" style="fill:rgb(0,0,0); font-size:30;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>filter:url(#Drop_Shadow)"&gt;Welcome to Meng Xianhui's Colorful World!&lt;/text&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/svg&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>结果如下：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>
<DIV align=center><IMG src="http://www.ccw.com.cn/htm/app/salon/01_12_18_3h.jpg"></DIV></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>SVG中另一个重要的概念就是文字或图像的旋转，SVG中，任何元素都可以进行旋转，下面就是旋转文字的例子：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;?xml version="1.0" standalone="no"?&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;svg width="100%" height="100%"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;g style="color:#000000;font-weight:bold;font-style:normal;font-size:24"&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;text x="18" y="18" transform="translate(7,7) rotate(30)"&gt;Welcome to Meng Xianhui's Colorful World!&lt;/text&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/g&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>&lt;/svg&gt;</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>上面例子的结果如下：</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>
<DIV align=center><IMG src="http://www.ccw.com.cn/htm/app/salon/01_12_18_3i.jpg"></DIV></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>在上面的例子中使用了&lt;g&gt;标记，这个标记的作用是把里面的其他元素看成是一个完整的组， 和SVG中的嵌套相类似，但有一点是不同的，&lt;g&gt;元素允许使用transform属性，这个属性允许我们操纵其他对象的尺寸位置和形状，即可以是静态的，也可以是动态的。因此，如果你想对一个对象做旋转运动，或者做螺旋运动，或者是变形的效果，那么就可以使用transform属性，translate的值描述旋转的圆心坐标，rotate的值描述旋转的角度。</TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD class=a14>要浏览以上例子的结果，你可以把代码拷贝到记事本里，最好是拷贝到XMLSpy里，然后保存为*.svg格式，就可以直接用IE6（IE5能否浏览我没有试验）或SVG Viewer来看到效果了。保存时应该注意编码方式，SVG是基于XML的文档格式，因此，文档结构应当满足XML的格式规范（Well-Formed）的要求。</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><img src ="http://www.cnitblog.com/wjh1025/aggbug/5959.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2006-01-01 13:18 <a href="http://www.cnitblog.com/wjh1025/archive/2006/01/01/5959.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>（转贴）csdn上高手给出的svg例子（画饼图）</title><link>http://www.cnitblog.com/wjh1025/archive/2005/12/29/5897.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Thu, 29 Dec 2005 09:28:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2005/12/29/5897.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/5897.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2005/12/29/5897.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/5897.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/5897.html</trackback:ping><description><![CDATA[<STRONG>（转贴）csdn上高手给出的svg例子（画饼图），求职应聘，必备良药<BR></STRONG>
<DIV width="100%">
<DIV style="FLOAT: right"><STRONG></STRONG></DIV>
<DIV>利用XSLT生成SVG格式的饼图 
<P></P>
<P>孟宪会&nbsp;&nbsp;<BR>2002-3-27&nbsp;13:34:47</P>
<P>--------------------------------------------------------------------------------<BR>&nbsp;</P>
<P>上次介绍了如何利用XSLT来生成SVG格式的普通柱形图，这次我们介绍如何生成饼图。饼图也是数据统计时常用的表现方式之一。&nbsp;&nbsp;<BR>首先，我们准备所需要的数据，格式是XML的。由于目前许多大型数据库都提供了对XML查询结果的支持，因此，您可以直接利用数据库来生成XML数据文件，也可以经过查询，再用编写组件的方法来生成需要的XML数据文件。我们的XML数据文件Data.xml格式如下：&nbsp;<BR>&nbsp;<BR>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-16"?&gt;&nbsp;<BR>&lt;?xml-stylesheet&nbsp;type="text/xsl"&nbsp;href="PieSVGGraph.xsl"?&gt;&nbsp;<BR>&lt;总销售额&gt;&nbsp;<BR>&lt;月销售额&nbsp;月数="1"&gt;&nbsp;<BR>&lt;产品销售额&nbsp;产品编号="Mxh001"&nbsp;销售数量="5"&nbsp;销售额="1500.00"/&gt;&nbsp;<BR>&lt;产品销售额&nbsp;产品编号="Mxh002"&nbsp;销售数量="10"&nbsp;销售额="500.00"/&gt;&nbsp;<BR>&lt;产品销售额&nbsp;产品编号="Mxh003"&nbsp;销售数量="1"&nbsp;销售额="700.00"/&gt;&nbsp;<BR>&lt;产品销售额&nbsp;产品编号="Mxh004"&nbsp;销售数量="2"&nbsp;销售额="1800.00"/&gt;&nbsp;<BR>&lt;产品销售额&nbsp;产品编号="Mxh005"&nbsp;销售数量="2"&nbsp;销售额="1000.00"/&gt;&nbsp;<BR>&lt;产品销售额&nbsp;产品编号="Mxh006"&nbsp;销售数量="12"&nbsp;销售额="1400.00"/&gt;&nbsp;<BR>&lt;/月销售额&gt;&nbsp;<BR>&lt;月销售额&nbsp;月数="2"&gt;&nbsp;<BR>&lt;产品销售额&nbsp;产品编号="Mxh001"&nbsp;销售数量="4"&nbsp;销售额="1400.00"/&gt;&nbsp;<BR>&lt;产品销售额&nbsp;产品编号="Mxh002"&nbsp;销售数量="12"&nbsp;销售额="2300.00"/&gt;&nbsp;<BR>&lt;产品销售额&nbsp;产品编号="Mxh003"&nbsp;销售数量="2"&nbsp;销售额="1500.00"/&gt;&nbsp;<BR>&lt;产品销售额&nbsp;产品编号="Mxh004"&nbsp;销售数量="2"&nbsp;销售额="1800.00"/&gt;&nbsp;<BR>&lt;产品销售额&nbsp;产品编号="Mxh005"&nbsp;销售数量="1"&nbsp;销售额="1050.00"/&gt;&nbsp;<BR>&lt;产品销售额&nbsp;产品编号="Mxh006"&nbsp;销售数量="8"&nbsp;销售额="1600.00"/&gt;&nbsp;<BR>&lt;/月销售额&gt;&nbsp;<BR>&lt;!--&nbsp;限于篇幅所限，我们这里省略了3月份到12月份的数据，如果浏览时，请自行添加上，格式同前&nbsp;--&gt;&nbsp;<BR>&lt;/总销售额&gt;&nbsp;<BR>&nbsp;<BR>下面，我们看看最关键的XSLT部分，由于在这里用到了XSLT，为了能够更好地看到本例的效果，请安装最新的&nbsp;MsXML3.0+SP2或MsXML4.0，可以到微软的网站下载：<A class=contentlink href="http://www.microsoft.com/xml/" target=_blank><FONT color=#4455aa>http://www.microsoft.com/xml/</FONT></A>。文中每一代码段都进行了注释说明。PieSVGGraph.xsl：&nbsp;<BR>&nbsp;<BR>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-16"?&gt;&nbsp;<BR>&lt;xsl:stylesheet&nbsp;version="1.0"&nbsp;exclude-result-prefixes="xsl&nbsp;Sin&nbsp;Cos"&nbsp;<BR>xmlns:xsl="<A class=contentlink href='http://www.w3.org/1999/XSL/Transform"' target=_blank><FONT color=#4455aa>http://www.w3.org/1999/XSL/Transform"</FONT></A>&nbsp;<BR>xmlns:Sin="<A class=contentlink href='http://lucky.myrice.com/Sin"' target=_blank><FONT color=#4455aa>http://lucky.myrice.com/Sin"</FONT></A>&nbsp;<BR>xmlns:Cos="<A class=contentlink href='http://lucky.myrice.com/Cos">' target=_blank><FONT color=#4455aa>http://lucky.myrice.com/Cos"&gt;</FONT></A>&nbsp;<BR>&nbsp;<BR>&lt;xsl:output&nbsp;method="xml"&nbsp;indent="yes"&nbsp;media-type="image/svg+xml"/&gt;&nbsp;<BR>&lt;!--&nbsp;先定义三角函数计算模板&nbsp;--&gt;&nbsp;<BR>&lt;!--&nbsp;<BR>==========================================================================&nbsp;<BR>计算sin(x)、cos(x)值的模板，用来返回三角函数sin(x)、cos(x)的值&nbsp;<BR>&nbsp;<BR>参数说明：&nbsp;<BR>$X&nbsp;-&nbsp;输入的角度值，单位是弧度或角度，由下面的Unit参数确定。&nbsp;<BR>$Unit&nbsp;-&nbsp;[可选参数]&nbsp;角度&nbsp;$X&nbsp;的单位，可选择的值如下：&nbsp;<BR>'角度'&nbsp;代表$X的单位是角度；&nbsp;<BR>'弧度'&nbsp;代表$X的单位是弧度（默认值）。&nbsp;<BR>$EPS&nbsp;-&nbsp;[可选参数]&nbsp;计算结果的精度。增加小数位数可以更大的精确度，但会降低性能。&nbsp;<BR>==========================================================================&nbsp;--&gt;&nbsp;<BR>&lt;xsl:template&nbsp;name="sin"&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="X"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="Unit"&nbsp;select="'弧度'"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="EPS"&nbsp;select="0.00000001"/&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="FUNC_Cal"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Fun"&nbsp;select="$DOC/Sin:*[1]"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$X"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Unit"&nbsp;select="$Unit"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="EPS"&nbsp;select="$EPS"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:template&gt;&nbsp;<BR>&nbsp;<BR>&lt;xsl:template&nbsp;name="cos"&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="X"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="Unit"&nbsp;select="'弧度'"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="EPS"&nbsp;select="0.00000001"/&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="FUNC_Cal"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Fun"&nbsp;select="$DOC/Cos:*[1]"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$X"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Unit"&nbsp;select="$Unit"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="EPS"&nbsp;select="$EPS"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:template&gt;&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&lt;!--&nbsp;定义常量pi，代替π&nbsp;--&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="pi"&nbsp;select="3.1415926535897932384626433832795"/&gt;&nbsp;<BR>&nbsp;<BR>&lt;!--&nbsp;下面我们利用sin(x)和cos(x)的展开式来近似计算他们的值。&nbsp;--&gt;&nbsp;<BR>&lt;!--&nbsp;采用循环的办法是计算，循环结束的条件是前后两次的结果差值小于我们给定的精度。&nbsp;--&gt;&nbsp;<BR>&lt;Sin:Sin/&gt;&nbsp;<BR>&lt;Cos:Cos/&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="DOC"&nbsp;select="document('')/*"/&gt;&nbsp;<BR>&lt;xsl:template&nbsp;name="FUNC_Cal"&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="Fun"&nbsp;select="/.."/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="X"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="Unit"&nbsp;select="'弧度'"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="EPS"&nbsp;select="0.00000001"/&gt;&nbsp;<BR>&lt;!--&nbsp;把角度转换成弧度&nbsp;--&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="Rads"&nbsp;select="(($Unit&nbsp;=&nbsp;'弧度')&nbsp;*&nbsp;$X)&nbsp;+&nbsp;((not($Unit&nbsp;=&nbsp;'弧度'))&nbsp;*&nbsp;($X&nbsp;*&nbsp;$pi&nbsp;div&nbsp;180))"/&gt;&nbsp;<BR>&lt;!--&nbsp;应用相应的函数&nbsp;--&gt;&nbsp;<BR>&lt;xsl:apply-templates&nbsp;select="$Fun"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$Rads"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="EPS"&nbsp;select="$EPS"/&gt;&nbsp;<BR>&lt;/xsl:apply-templates&gt;&nbsp;<BR>&lt;/xsl:template&gt;&nbsp;<BR>&nbsp;<BR>&lt;xsl:template&nbsp;name="Func_sin"&nbsp;match="Sin:*"&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="X"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="EPS"&nbsp;select="0.00000001"/&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="Y"&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="not(0&nbsp;&lt;=&nbsp;$X&nbsp;and&nbsp;$pi*2&nbsp;&gt;&nbsp;$X)"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="COSIN"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="LEN"&nbsp;select="$pi*2"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$X"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:otherwise&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="$X"/&gt;&nbsp;<BR>&lt;/xsl:otherwise&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="SINE"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X2"&nbsp;select="$Y*$Y"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Result"&nbsp;select="$Y"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Element"&nbsp;select="$Y"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="N"&nbsp;select="1"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="EPS"&nbsp;select="$EPS"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:template&gt;&nbsp;<BR>&nbsp;<BR>&lt;xsl:template&nbsp;name="SINE"&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="X2"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="Result"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="Element"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="N"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="EPS"/&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="varN"&nbsp;select="$N+2"/&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="varNewElement"&nbsp;select="-$Element*$X2&nbsp;div&nbsp;($varN*($varN&nbsp;-&nbsp;1))"/&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="varNewResult"&nbsp;select="$Result&nbsp;+&nbsp;$varNewElement"/&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="varDiffResult"&nbsp;select="$varNewResult&nbsp;-&nbsp;$Result"/&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="$varDiffResult&nbsp;&gt;&nbsp;$EPS&nbsp;or&nbsp;$varDiffResult&nbsp;&lt;&nbsp;-$EPS"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="SINE"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X2"&nbsp;select="$X2"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Result"&nbsp;select="$varNewResult"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Element"&nbsp;select="$varNewElement"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="N"&nbsp;select="$varN"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="EPS"&nbsp;select="$EPS"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:otherwise&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="$varNewResult"/&gt;&nbsp;<BR>&lt;/xsl:otherwise&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;/xsl:template&gt;&nbsp;<BR>&nbsp;<BR>&lt;xsl:template&nbsp;name="Func_cos"&nbsp;match="Cos:*"&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="X"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="EPS"&nbsp;select="0.00000001"/&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="Func_sin"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$pi&nbsp;div&nbsp;2&nbsp;-&nbsp;$X"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="EPS"&nbsp;select="$EPS"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:template&gt;&nbsp;<BR>&nbsp;<BR>&lt;xsl:template&nbsp;name="COSIN"&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="LEN"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="X"/&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="SignX"&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="$X&nbsp;&gt;=&nbsp;0"&gt;1&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:otherwise&gt;-1&lt;/xsl:otherwise&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="varDiff"&nbsp;select="$LEN*floor($X&nbsp;div&nbsp;$LEN)&nbsp;-$X"/&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="$varDiff*$X&nbsp;&gt;&nbsp;0"&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="$SignX*$varDiff"/&gt;&nbsp;<BR>&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:otherwise&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="-$SignX*$varDiff"/&gt;&nbsp;<BR>&lt;/xsl:otherwise&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;/xsl:template&gt;&nbsp;<BR>&nbsp;<BR>&lt;!--&nbsp;定义饼图的大小&nbsp;--&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="pie_RX"&nbsp;select="number(200)"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="pie_RY"&nbsp;select="$pie_RX"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="pie_explode_RX"&nbsp;select="number(20)"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="pie_explode_RY"&nbsp;select="$pie_explode_RX"/&gt;&nbsp;<BR>&lt;!--&nbsp;确定饼图的中心坐标点&nbsp;--&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="pie_CX"&nbsp;select="$pie_RX&nbsp;+&nbsp;150"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="pie_CY"&nbsp;select="$pie_RY&nbsp;+&nbsp;50"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="pie_segment_explode"&nbsp;select="number(0)"/&gt;&nbsp;<BR>&lt;!--&nbsp;确定饼图中第一块圆弧的角度&nbsp;--&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="pie_start_angle"&nbsp;select="number(0)"/&gt;&nbsp;<BR>&lt;!--&nbsp;定义最小显示的百分比数&nbsp;--&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="Lowest_Must_Show"&nbsp;select="number(4)"/&gt;&nbsp;<BR>&lt;xsl:key&nbsp;name="kProdSales"&nbsp;match="产品销售额"&nbsp;use="@产品编号"/&gt;&nbsp;<BR>&nbsp;<BR>&lt;!--&nbsp;样式单模板开始定义&nbsp;--&gt;&nbsp;<BR>&lt;xsl:template&nbsp;match="/"&gt;&nbsp;<BR>&lt;!--&nbsp;得到所有产品的列表&nbsp;--&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="ProdSales"&nbsp;select="总销售额/月销售额/产品销售额[generate-id()&nbsp;=&nbsp;generate-id(key('kProdSales',@产品编号))]"/&gt;&nbsp;<BR>&lt;!--&nbsp;得到所有产品的销售总值&nbsp;--&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="TotalSales<I>value</I>"&nbsp;select="sum(总销售额/月销售额/产品销售额/@销售额)"/&gt;&nbsp;<BR>&lt;!--&nbsp;SVG&nbsp;图象开始&nbsp;--&gt;&nbsp;<BR>&lt;svg&nbsp;id="body"&nbsp;viewBox="0&nbsp;0&nbsp;-100&nbsp;{$pie_CY&nbsp;+&nbsp;$pie_RY&nbsp;+&nbsp;75}"&gt;&nbsp;<BR>&lt;!--&nbsp;递归遍历所有产品&nbsp;--&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="draw_segments"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Every_Prod_Sales"&nbsp;select="$ProdSales"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="total_sales"&nbsp;select="$TotalSales<I>value</I>"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;!--&nbsp;饼图的标题&nbsp;--&gt;&nbsp;<BR>&lt;text&nbsp;text-anchor="middle"&nbsp;stroke="#000099"&nbsp;font-size-adjust="+1"&nbsp;x="{$pie_CX&nbsp;-&nbsp;$pie_RX}"&nbsp;y="{$pie_CY&nbsp;+&nbsp;$pie_RY&nbsp;+&nbsp;50}"&nbsp;dx="{2&nbsp;*&nbsp;$pie_RX}"&gt;&nbsp;<BR>X&nbsp;公司个产品销售情况&nbsp;<BR>&lt;/text&gt;&nbsp;<BR>&lt;/svg&gt;&nbsp;<BR>&lt;/xsl:template&gt;&nbsp;<BR>&nbsp;<BR>&lt;!--&nbsp;递归模板，画出每一部分&nbsp;--&gt;&nbsp;<BR>&lt;xsl:template&nbsp;name="draw_segments"&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="Every_Prod_Sales"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="total_sales"/&gt;&nbsp;<BR>&lt;!--&nbsp;递归调用时的参数&nbsp;--&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="total_perc_so_far"&nbsp;select="number(0)"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="node_Num"&nbsp;select="number(1)"/&gt;&nbsp;<BR>&lt;!--&nbsp;产品节点数&nbsp;--&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="drawn_Num"&nbsp;select="number(1)"/&gt;&nbsp;<BR>&lt;!--&nbsp;实际画出的数&nbsp;--&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="Other_Perc"&nbsp;select="number(0)"/&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="$Every_Prod_Sales[$node_Num]"&gt;&nbsp;<BR>&lt;!--&nbsp;计算一种产品的总销售额&nbsp;--&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="this_prod_sales"&nbsp;select="sum(key('kProdSales',$Every_Prod_Sales[$node_Num]/@产品编号)/@销售额)"/&gt;&nbsp;<BR>&lt;!--&nbsp;计算该产品在总销售额中的百分比&nbsp;--&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="perc_of_total"&nbsp;select="$this_prod_sales&nbsp;div&nbsp;$total_sales"/&gt;&nbsp;<BR>&lt;!--&nbsp;实际画出的产品数：如果百分比小于设定的最小百分比，就忽略掉，放到其它一项中&nbsp;--&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="$perc_of_total&nbsp;&lt;&nbsp;($Lowest_Must_Show&nbsp;div&nbsp;100)"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="draw_segments"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Every_Prod_Sales"&nbsp;select="$Every_Prod_Sales"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="total_sales"&nbsp;select="$total_sales"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="total_perc_so_far"&nbsp;select="$total_perc_so_far"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="node_Num"&nbsp;select="$node_Num&nbsp;+&nbsp;1"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="drawn_Num"&nbsp;select="$drawn_Num"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Other_Perc"&nbsp;select="$Other_Perc&nbsp;+&nbsp;$perc_of_total"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:otherwise&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="draw_pie_part"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="angle"&nbsp;select="360&nbsp;*&nbsp;$perc_of_total"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="prev_angle"&nbsp;select="$pie_start_angle&nbsp;+&nbsp;(360&nbsp;*&nbsp;$total_perc_so_far)"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="label"&nbsp;select="concat($Every_Prod_Sales[$node_Num]/@产品编号,'&nbsp;(',format-number($perc_of_total&nbsp;*&nbsp;100,'0.0'),'%)')"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="explode"&nbsp;select="($pie_segment_explode&nbsp;=&nbsp;$drawn_Num)&nbsp;or&nbsp;($pie_segment_explode&nbsp;=&nbsp;-1)"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="fill_color"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="Pie_Color"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Rel_Pos"&nbsp;select="$drawn_Num"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:with-param&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="RX"&nbsp;select="$pie_RX"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="radiusY"&nbsp;select="$pie_RY"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="centerX"&nbsp;select="$pie_CX"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="centerY"&nbsp;select="$pie_CY"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="explode_RX"&nbsp;select="$pie_explode_RX"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="explode_radiusY"&nbsp;select="$pie_explode_RY"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;!--&nbsp;统计下一个节点&nbsp;--&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="draw_segments"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Every_Prod_Sales"&nbsp;select="$Every_Prod_Sales"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="total_sales"&nbsp;select="$total_sales"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="total_perc_so_far"&nbsp;select="$total_perc_so_far&nbsp;+&nbsp;$perc_of_total"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="node_Num"&nbsp;select="$node_Num&nbsp;+&nbsp;1"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="drawn_Num"&nbsp;select="$drawn_Num&nbsp;+&nbsp;1"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Other_Perc"&nbsp;select="$Other_Perc"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:otherwise&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="$Other_Perc&nbsp;&gt;&nbsp;0"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="draw_pie_part"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="angle"&nbsp;select="360&nbsp;*&nbsp;$Other_Perc"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="prev_angle"&nbsp;select="$pie_start_angle&nbsp;+&nbsp;(360&nbsp;*&nbsp;$total_perc_so_far)"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="label"&nbsp;select="concat('其它&nbsp;(',format-number($Other_Perc&nbsp;*&nbsp;100,'0.0'),'%)')"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="explode"&nbsp;select="($pie_segment_explode&nbsp;&lt;&nbsp;0)"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="fill_color"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="Pie_Color"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Rel_Pos"&nbsp;select="$drawn_Num"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:with-param&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="RX"&nbsp;select="$pie_RX"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="radiusY"&nbsp;select="$pie_RY"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="centerX"&nbsp;select="$pie_CX"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="centerY"&nbsp;select="$pie_CY"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="explode_RX"&nbsp;select="$pie_explode_RX"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="explode_radiusY"&nbsp;select="$pie_explode_RY"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:when&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;/xsl:template&gt;&nbsp;<BR>&nbsp;<BR>&lt;!--&nbsp;画出每一块单独的弧&nbsp;--&gt;&nbsp;<BR>&lt;xsl:template&nbsp;name="draw_pie_part"&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="angle"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="prev_angle"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="label"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="explode"&nbsp;select="false()"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="fill_color"&nbsp;select="'#000099'"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="line_color"&nbsp;select="'#000000'"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="RX"&nbsp;select="number(200)"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="radiusY"&nbsp;select="number(200)"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="centerX"&nbsp;select="$RX&nbsp;+&nbsp;50"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="centerY"&nbsp;select="$radiusY&nbsp;+&nbsp;50"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="explode_RX"&nbsp;select="number(20)"/&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="explode_radiusY"&nbsp;select="number(20)"/&gt;&nbsp;<BR>&lt;!--&nbsp;计算一种产品占的角度&nbsp;--&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="full_angle"&nbsp;select="$prev_angle&nbsp;+&nbsp;$angle"/&gt;&nbsp;<BR>&lt;!--&nbsp;计算图例文字所在的角度位置&nbsp;--&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="half_angle"&nbsp;select="$prev_angle&nbsp;+&nbsp;($angle&nbsp;div&nbsp;2)"/&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="X0"&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="$explode"&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="sinX"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="sin"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$half_angle"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Unit"&nbsp;select="'角度'"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="$centerX&nbsp;+&nbsp;($sinX&nbsp;*&nbsp;$explode_RX)"/&gt;&nbsp;<BR>&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:otherwise&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="$centerX"/&gt;&nbsp;<BR>&lt;/xsl:otherwise&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="Y0"&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="$explode"&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="cosX"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="cos"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$half_angle"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Unit"&nbsp;select="'角度'"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="$centerY&nbsp;+&nbsp;(0&nbsp;-&nbsp;($cosX&nbsp;*&nbsp;$explode_radiusY))"/&gt;&nbsp;<BR>&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:otherwise&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="$centerY"/&gt;&nbsp;<BR>&lt;/xsl:otherwise&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;!--&nbsp;计算坐标点&nbsp;--&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="X1"&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="sinX"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="sin"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$prev_angle"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Unit"&nbsp;select="'角度'"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="($sinX&nbsp;*&nbsp;$RX)"/&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="Y1"&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="cosX"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="cos"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$prev_angle"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Unit"&nbsp;select="'角度'"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="0&nbsp;-&nbsp;($cosX&nbsp;*&nbsp;$radiusY)"/&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="X2"&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="sinX"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="sin"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$full_angle"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Unit"&nbsp;select="'角度'"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="($sinX&nbsp;*&nbsp;$RX)&nbsp;-&nbsp;$X1"/&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="Y2"&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="cosX"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="cos"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$full_angle"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Unit"&nbsp;select="'角度'"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="(0&nbsp;-&nbsp;($cosX&nbsp;*&nbsp;$radiusY))&nbsp;-&nbsp;$Y1"/&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;!--&nbsp;计算图例出现的象限位置，决定图例文字出现的位置&nbsp;--&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="label_quandrant"&nbsp;select="floor(($half_angle&nbsp;mod&nbsp;360)&nbsp;div&nbsp;90)"/&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="textXalign"&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="$label_quandrant&nbsp;&lt;&nbsp;2"&gt;&nbsp;<BR>&lt;xsl:text&gt;start&lt;/xsl:text&gt;&nbsp;<BR>&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:otherwise&gt;&nbsp;<BR>&lt;xsl:text&gt;end&lt;/xsl:text&gt;&nbsp;<BR>&lt;/xsl:otherwise&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="textDY"&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="($label_quandrant&nbsp;=&nbsp;0)&nbsp;or&nbsp;($label_quandrant&nbsp;=&nbsp;3)"&gt;&nbsp;<BR>&lt;xsl:text&gt;-10&lt;/xsl:text&gt;&nbsp;<BR>&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:otherwise&gt;&nbsp;<BR>&lt;xsl:text&gt;15&lt;/xsl:text&gt;&nbsp;<BR>&lt;/xsl:otherwise&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;!--&nbsp;计算图例文字的x、y坐标&nbsp;--&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="XTxt"&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="sinX"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="sin"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$half_angle"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Unit"&nbsp;select="'角度'"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="$X0&nbsp;+&nbsp;($sinX&nbsp;*&nbsp;($RX&nbsp;+&nbsp;10))"/&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="YTxt"&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="cosX"&gt;&nbsp;<BR>&lt;xsl:call-template&nbsp;name="cos"&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="X"&nbsp;select="$half_angle"/&gt;&nbsp;<BR>&lt;xsl:with-param&nbsp;name="Unit"&nbsp;select="'角度'"/&gt;&nbsp;<BR>&lt;/xsl:call-template&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="$Y0&nbsp;+&nbsp;(0&nbsp;-&nbsp;($cosX&nbsp;*&nbsp;$radiusY))"/&gt;&nbsp;<BR>&lt;/xsl:variable&gt;&nbsp;<BR>&lt;!--&nbsp;画出每个产品所占的部分&nbsp;--&gt;&nbsp;<BR>&lt;g&gt;&nbsp;<BR>&lt;!--&nbsp;画出图&nbsp;--&gt;&nbsp;<BR>&lt;path&nbsp;fill="{$fill_color}"&nbsp;stroke="{$line_color}"&nbsp;d="M{$X0},{$Y0}&nbsp;l{$X1},{$Y1}&nbsp;a{$RX},{$radiusY}&nbsp;0&nbsp;0&nbsp;1&nbsp;{$X2},{$Y2}&nbsp;L{$X0},{$Y0}"/&gt;&nbsp;<BR>&lt;!--&nbsp;画出旁边的图例文字&nbsp;--&gt;&nbsp;<BR>&lt;text&nbsp;text-anchor="{$textXalign}"&nbsp;x="{$XTxt}"&nbsp;y="{$YTxt}"&nbsp;dy="{$textDY}"&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="$label"/&gt;&nbsp;<BR>&lt;/text&gt;&nbsp;<BR>&lt;/g&gt;&nbsp;<BR>&lt;/xsl:template&gt;&nbsp;<BR>&nbsp;<BR>&lt;!--&nbsp;计算饼图每部分的颜色&nbsp;--&gt;&nbsp;<BR>&lt;xsl:template&nbsp;name="Pie_Color"&gt;&nbsp;<BR>&lt;xsl:param&nbsp;name="Rel_Pos"&nbsp;select="number(0)"/&gt;&nbsp;<BR>&lt;xsl:variable&nbsp;name="ColorLight"&nbsp;select="'F0E0A09070503010E0C0A08060402000'"/&gt;&nbsp;<BR>&lt;xsl:text&gt;#&lt;/xsl:text&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="($Rel_Pos&nbsp;mod&nbsp;3)&nbsp;=&nbsp;0"&gt;EE&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:otherwise&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="substring($ColorLight,(($Rel_Pos&nbsp;mod&nbsp;16)&nbsp;*&nbsp;2)+1,2)"/&gt;&nbsp;<BR>&lt;/xsl:otherwise&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="($Rel_Pos&nbsp;mod&nbsp;3)&nbsp;=&nbsp;1"&gt;EE&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:otherwise&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="substring($ColorLight,(($Rel_Pos&nbsp;mod&nbsp;16)&nbsp;*&nbsp;2)+1,2)"/&gt;&nbsp;<BR>&lt;/xsl:otherwise&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;xsl:choose&gt;&nbsp;<BR>&lt;xsl:when&nbsp;test="($Rel_Pos&nbsp;mod&nbsp;3)&nbsp;=&nbsp;2"&gt;EE&lt;/xsl:when&gt;&nbsp;<BR>&lt;xsl:otherwise&gt;&nbsp;<BR>&lt;xsl:<I>value</I>-of&nbsp;select="substring($ColorLight,(($Rel_Pos&nbsp;mod&nbsp;16)&nbsp;*&nbsp;2)+1,2)"/&gt;&nbsp;<BR>&lt;/xsl:otherwise&gt;&nbsp;<BR>&lt;/xsl:choose&gt;&nbsp;<BR>&lt;/xsl:template&gt;&nbsp;<BR>&nbsp;<BR>&lt;/xsl:stylesheet&gt;&nbsp;<BR>&nbsp;<BR>我们最后生成的SVG图象如下图所示。&nbsp;<BR>&nbsp;<BR>&nbsp;</P>
<P><BR><IMG src="http://xml.org.cn/images/files/bmp.gif" border=0>此主题相关图片如下：<BR><A class=contentlink href="http://xml.org.cn/uploadfile/20056179124288897.bmp" target=_blank><IMG alt="" src="http://xml.org.cn/uploadfile/20056179124288897.bmp" onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0 dypop="按此在新窗口浏览图片"></A></P></DIV></DIV><img src ="http://www.cnitblog.com/wjh1025/aggbug/5897.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2005-12-29 17:28 <a href="http://www.cnitblog.com/wjh1025/archive/2005/12/29/5897.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript对象与数组参考大全</title><link>http://www.cnitblog.com/wjh1025/archive/2005/12/23/5735.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Fri, 23 Dec 2005 14:29:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2005/12/23/5735.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/5735.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2005/12/23/5735.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/5735.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/5735.html</trackback:ping><description><![CDATA[<P>JavaScript对象与数组参考大全</P>
<P>本文列举了各种JavaScript对象与数组,同时包括对上述每一对象或数组所完成工作的简短描述,以及与其相关的属性方法,以及事件处理程序,还注明了该对象或数组的父对象用户同样可能需要参考Online Companion中的超级文本Object Hierarchy页面(<A href="http://www.netscapepress.com/support/javascript/10-9.htm">http://www.netscapepress.com/support/javascript/10-9.htm</A>),以便了解这些对象之间是如何相互关联的。<BR>　　顺便提一下,记住,这里把所有作为另一对象的子对象的对象看作该对象的属性请参见第十章中与此相关的注解。</P>
<P>　　B.1 anchor对象<BR>　　使用&lt;A NAME=&gt;标记创建的HTML描点能被一个链接作为目标如果锚点包括HREF=特性,则它也是一个链接对象。<BR>　　anchor对象是document对象的一个属性,它本身没有属性方法或者事件处理程序。</P>
<P>　　B.2 anchors数组<BR>　　anchors数组是document对象的一个属性,是文档内所有anchor对象的一个列表如果anchor也是一个link(链接),则它会同时出现在anchors和links数组中。<BR>　　属性<BR>　　length 文档内的锚点个数</P>
<P>　　B.3 array对象<BR>　　array对象是Netscape Navlgator 3.0 beta 3中引入的一个新的对象,因而,它不能在Netscape 2.0中使用它是一个内置对象,而不是其它对象的属性。<BR>　　属性<BR>　length 数组中的值个数</P>
<P>　　B.4 button对象<BR>　　它是form对象的一个属性,使用&lt;INPUT TYPE="BUTTON"&gt;标记来创建。<BR>　　属性<BR>　　name HTML标记中的NAME=特性<BR>　　value HTML标记中的VALUE=特性<BR>　　方法<BR>　　click 模拟鼠标单击一按钮<BR>　　事件处理程序<BR>　　Onclick</P>
<P>　　B.5 checkbox 对象<BR>　　它是form对象的一个属性,使用&lt;INPUT TYPE="CHECKBOX"&gt;标记来创建。<BR>　　属性<BR>　　checked 复选框的选择状态<BR>　　defaultChecked 标记的CHECKED=特性<BR>　　name 标记的NAME=特性<BR>　　value 标记的VALUE=特性<BR>　　方法<BR>　　click 模拟鼠标单击按钮<BR>　　事件处理程序<BR>　　onclick</P>
<P>　　B.6 Date对象<BR>　　它是一个内置对象——而不是其它对象的属性,允许用户执行各种使用日期和时间的过程。<BR>&nbsp; 　方法<BR>　　getDate() 查看Date对象并返回日期<BR>　　getDay() 返回星期几<BR>　　getHours() 返回小时数<BR>　　getMinutes() 返回分钟数<BR>　　getMonth() 返回月份值<BR>　　getSeconds() 返回秒数<BR>　　getTime() 返回完整的时间<BR>　　getTimezoneoffset() 返回时区偏差值(格林威治平均时间与运行脚本的计算机所处时区设置之间相差的小时数)<BR>　　getYear() 返回年份<BR>　　parse() 返回在Date字符串中自从1970年1月1日00:00:00以来的毫秒数(Date对象按照毫秒数的形式存储从那时起的日期和时间)但是注意,该方法当前不能正确运行<BR>　　setDate() 改变Date对象的日期<BR>　　setHours() 改变小时数<BR>　　setMinutes() 改变分钟数<BR>　　setMonth() 改变月份<BR>　　setSeconds() 改变秒数<BR>　　setTime() 改变完整的时间<BR>　　setYear() 改变年份<BR>　　toGMTString() 把Date对象的日期(一个数值)转变成一个GMT时间字符串,返回类似下面的值:Weds,15 June l997 14:02:02 GMT(精确的格式依赖于计算机上所运行的操作系统而变)<BR>　　toLocaleString() 把Date对象的日期(一个数值)转变成一个字符串,使用所在计算机上配置使用的特定日期格式<BR>　　UTC() 使用Date UTC(年、月、日、时、分、秒),以自从1970年1月1日00:00:00(其中时、分、秒是可选的)以来的毫秒数的形式返回日期</P>
<P>　　B.7 document对象<BR>　　该对象是window和frames对象的一个属性,是显示于窗口或框架内的一个文档。<BR>　　属性<BR>　　alinkColor 活动链接的颜色(ALINK)<BR>　　anchor 一个HTMI锚点,使用&lt;A NAME=&gt;标记创建(该属性本身也是一个对象)<BR>　　anchors array 列出文档锚点对象的数组(&lt;A NAME=&gt;)(该属性本身也是一个对象)<BR>　　bgColor 文档的背景颜色(BGCOLOR)<BR>　　cookie 存储于cookie.txt文件内的一段信息,它是该文档对象的一个属性<BR>　　fgColor 文档的文本颜色(&lt;BODY&gt;标记里的TEXT特性)<BR>　　form 文档中的一个窗体(&lt;FORM&gt;)(该属性本身也是一个对象)<BR>　　forms anay 按照其出现在文档中的顺序列出窗体对象的一个数组(该属性本身也是一个对象)<BR>　　lastModified 文档最后的修改日期<BR>　　linkColor 文档的链接的颜色,即&lt;BODY&gt;标记中的LINK特性(链接到用户没有观察到的文档)<BR>　　link 文档中的一个&lt;A HREF=&gt;标记(该属性本身也是一个对象)<BR>　　links array 文档中link对象的一个数组,按照它们出现在文档中的顺序排列(该属性本身也是一个对象)<BR>　　location 当前显示文档的URL。用户不能改变document.location(因为这是当前显示文档的位置)。但是,可以改变window.location (用其它文档取代当前文档)window.location本身也是一个对象,而document.location不是对象<BR>　　referrer 包含链接的文档的URL,用户单击该链接可到达当前文档<BR>　　title 文档的标题((TITLE&gt;)<BR>　　vlinkColor 指向用户已观察过的文档的链接文本颜色,即&lt;BODY&gt;标记的VLINK特性<BR>　　方法<BR>　　clear 清除指定文档的内容<BR>　　close 关闭文档流<BR>　　open 打开文档流<BR>　　write 把文本写入文档<BR>　　writeln 把文本写入文档,并以换行符结尾</P>
<P>　　B.8 elements数组<BR>　　它是form对象的一个属性,列举了窗体内各元素的一个数组。<BR>　　属性<BR>　　1ength 窗体内的元素个数<BR>　　B.9 form对象<BR>　　它是document对象的一个属性,文档内的一个窗体。<BR>　　属性<BR>　　action 包含了为一个窗体提交的目标URL的字符串<BR>　　button 窗体内的一个按钮,使用&lt;INPUT TYPE=”BUTTON”&gt;标记来创建(该属性本身也是一个对象)<BR>　　checkbox 复选框,使用&lt;INPUT TYPE=”CHECKBOX”&gt;标记来创建 (该属性本身也是一个对象)<BR>　　elements array 一个数组,按照其出现于窗体内的顺序列举各窗体元素(该属性本身也是一个对象)<BR>　　encoding 窗体的MIME编码<BR>&nbsp; 　hidden 窗体里的一个隐藏元素(&lt;INPUT TYPE=”HIDDEN”&gt;)。窗体对象的一个属性(该属性本身也是一个对象)<BR>　　length 窗体里的元素的个数<BR>　　method 输入窗体的数据传送到服务器上的方式,即(FORM)标记中的METHOD特性<BR>　　radio 设置在窗体里的单选按钮(&lt;INPUT TYPE=”RADIO”&gt;)(该属性本身也是一个对象)<BR>　　reset 窗体里的复位按钮((1NPUT TYPE=”RESET”&gt;)(该属性自身也是一个对象)<BR>　　select 窗体里的选择框(&lt;SELECT&gt;)(该属性本身也是一个对象)<BR>　　submit 窗体里的提交按钮(&lt;INPUT TYPE=”SUBMIT”&gt;)(该属性本身也是一个对象)<BR>　　target 提交窗体后,显示回应信息的窗口的名字<BR>　　text 窗体里的文本元素(&lt;INPUT TYPE=”TEXT”&gt;)(该属性本身也是一个对象)<BR>　　textarta 窗体里的文本区元素(&lt;TEXTAREA&gt;)(该属性本身也是一个对象)<BR>　　方法<BR>　　submit 提交窗体(与使用Submit按钮的作用相同)事件处理程序<BR>　　onsubmit</P>
<P>　　B.10 forms数组<BR>　　该数组是document对象的一个属性,即列举了文档内的各窗体的一个数组。<BR>　　属性<BR>　　length 文档内窗体的个数</P>
<P>　　B.11 frame对象<BR>　　它是window对象的一个属性,窗口内的一个框架。除了个别例外,frame对象与window对象的作用相同。<BR>　　属性<BR>　　frames array 列举该框架内的各个子框架的一个数组(该属性本身也是—个对象)<BR>　　length 该框架内的框架数<BR>　　name 框架的名字(&lt;FRAME&gt;标记里的NAME特性)<BR>　　parent 包含本框架的父窗口的同义词<BR>　　self 当前框架的同义词<BR>　　window 当前框架的同义词<BR>　　方法<BR>　　clearTimeout() 用来终止setTimeout方法的工作<BR>　　setTimeout() 等待指定的毫秒数,然后运行指令</P>
<P>　　B.12 frames数组<BR>　　它既是window对象,也是frame对象的属性,列举了window或者frame对象内的各框架。<BR>　　属性<BR>　　length 窗口或框架对象内的框架数</P>
<P>　　B.13 hidden对象<BR>　　糊为form对象的一个属性,窗体内的一个隐藏元素(&lt;INPUT TYPE=”HIDDEN”&gt;)。<BR>　　属性<BR>　　name 标记内的名字(NAME特性)<BR>　　value 标记内的VALUE=特性</P>
<P>　　B.14 history对象<BR>　　它为window对象的一个属性,该窗口的历史列表。<BR>　　属性<BR>　　length 历史列表中的项目数<BR>　　方法<BR>　　back 加载历史列表中的上一个文档<BR>　　forward 加载历史列表中的下一个文档<BR>　　go 加载历史列表中的一个指定文档,通过文档在列表中的位置来指定</P>
<P>　　B.15 image对象<BR>　　它是document对象的一个属性,是使用(1MG)标记内嵌入文档里的一幅图像这是Netscape Navigator 3.0 beta 3引入的新对象。<BR>　　属性<BR>　　border &lt;IMG&gt;标记的BORDER特性<BR>　　complete 表示浏览器是否完整地加载了图像的一个布尔值<BR>　　height HEIGHT特性<BR>　　hspace HSPACE特性<BR>　　lowsrc LOWSRC特性<BR>　　src SRC特性<BR>　　vsPace VSPACE特性<BR>　　width WIDTH特性<BR>　　事件处理程序<BR>　　Onload 图象载入<BR>　　Onerror 载入错误<BR>　　Onabort 取消</P>
<P>　　B.16 images数组<BR>　　它是document对象的一个属性,文档中所有图像的列表。<BR>　　属性<BR>　　length 文档内的图像个数</P>
<P>　　B.17 link<BR>　　它是document对象的一个属性,文档内的一个&lt;A HREF=&gt;标记。<BR>　　属性<BR>　　hash 以散列号(#)开始的一个字符串,用于指定URL内的一个锚点<BR>　　host 包括冒号和端口号的URL的主机名部分<BR>　　hostname 与host属性相同,除了不包括冒号和端口号外<BR>　　href 完整的URL<BR>　　pathname URL的目录路径部分<BR>　　port URL的:端口部分<BR>　　protocol URL类型(http:、ftp:、gopher:等等)<BR>　　search 以一个问号开始的URL中的一部分,用于指定搜索信息<BR>　　target 当用户单击一链接(TARGET特性)时,用于显示被引用文档内容的窗口<BR>　　事件处理程序<BR>　　Onclick 点击<BR>　　Onmouseover 鼠标移到对象上</P>
<P>　　B.18 links数组<BR>　　它是document对象的一个属性,文档内所有链接的一个列表。<BR>　　属性<BR>　　length 文档内的链接数</P>
<P>　　B.19 location对象<BR>　　它为document对象的一个属性,该文档的完整URL，请不要把它与window.location属性相混淆,后者可用来加载一个新文档,并且window.location属性本身并不是一个对象，同时,window.location可以用脚本修改,而document.location则不能。<BR>　　属性<BR>　　hash 以散列号(#)开始的一个字符串,用于指定URL内的一个锚点<BR>　　host 包括冒号和端口号的URL的主机名部分<BR>　　hostname 与host属性相同,除了不包括冒号和端口号之外<BR>　　href 完整的URL<BR>　　pathname URL的目录路径部分<BR>　　port URL的:端口部分<BR>　　protocol URL的类型(http:、ftp:、gopher:等等)<BR>　　search 以问号(?)开始的URL中的一部分,用于指定搜索信息<BR>　　target 用户单击链接(TARGET特性)时,用于显示被引用文档的内容的窗口</P>
<P>　　B.20 math对象<BR>　　该对象不是其它对象的一个属性,而是一个内置对象,包含了许多数学常量和函数。<BR>　　属性<BR>　　E 欧拉常量,自然对数的底(约等于2.718)<BR>　　LN2 2的自然对数(约等于0.693)<BR>　　LN10 10的自然对数(约等于2.302)<BR>　　LOG2E 以2为底的e的对数(约等于1.442)<BR>　　LOG10E 以10为底的e的对数(约等于o.434)<BR>　　PI ∏的值(约等于3.14159)<BR>　　SQRT1_2 0.5的平方根(即l除以2的平方根,约等于o.707)<BR>　　SQRT2 2的平方根(约等于1.414)<BR>　　方法<BR>　　abs() 返回某数的绝对值(即该数与o的距离,例如,2与一2的绝对值都是2)<BR>　　acos() 返回某数的反余弦值(以弧度为单位)<BR>　　asin() 返回某数的反正弦值(以弧度为单位)<BR>　　atan() 返回某数的反正切值(以弧度为单位)<BR>　　ceil() 返回与某数相等,或大于该数的最小整数(ceil(-22.22)返回-22;ceil22,22)返回23;ceil(22)返回22)<BR>　　cos() 返回某数(以弧度为单位)的余弦值<BR>　　exp() 返回en<BR>　　floor() 与ceil相反(floor(一22.22)返回一23;floor(22.22)返回22; floor(22)返回22)<BR>　　10g() 返回某数的自然对数(以e为底)<BR>　　max() 返回两数间的较大值<BR>　　min() 返回两数问的较小值<BR>　　pow() 返回m的n次方(其中,m为底,n为指数)<BR>　　random() 返回0和1之间的一个伪随机数(该方法仅在Netscape<BR>　　Navigator的UNIX版本中有效)<BR>　　round() 返回某数四舍五入之后的整数<BR>　　sin() 返回某数(以弧度为单位)的正弦值<BR>　　sqrt() 返回某数的平方根<BR>　　tan() 返回某数的正切值</P>
<P>　　B.2l navigator对象<BR>　　该对象不是其它对象的属性,而是一个内置对象它包含了有关加载文档的浏览器的信息。<BR>　　属性<BR>　　appCodeName 浏览器的代码名(例如,Mozilla)<BR>　　appName 浏览器的名字<BR>　　appVersion 浏览器的版本号<BR>　　userAgent 由客户机送到服务器的用户与代理头标文本<BR>　　方法<BR>　　javaEnabled JavaScript中当前并没有该方法,但是不久之后将会添加上它将查看浏览器是否为兼容JavaScript的浏览器,如果是,继续查看JavaScript是否处于支持状态。</P>
<P>　　B.22 options数组<BR>　　该数组是select对象的一个属性,即选择框中的所有选项(&lt;OPTION&gt;)的一个列表。<BR>　　属性<BR>　　defaultSelected 选项列表中的缺省选项<BR>　　index 选项列表中某选项的索引位置<BR>　　length 选项列表中的选项数(&lt;OPTIONS&gt;)<BR>　　name 选项列表的名字(NAME特性)<BR>　　selected 表示选项列表中某选项&lt;OPTION&gt;是否被选中的一个布尔类型值<BR>　　selectedIndex 选项列表中已选中的&lt;OPTION&gt;的索引(位置)<BR>　　text 选项列表中&lt;OPTION&gt;标记后的文本<BR>　　value 选项列表中的VALUE=特性</P>
<P>　　B.23 Password 对象<BR>　　它是document对象的一个属性,一个&lt;INPUT TYPE=”PASSWORD”&gt;标记。<BR>　　属性<BR>　　defaultValue password对象的缺省值(VAlUE=特性)<BR>　　name 对象的名字(NAME=特性)<BR>　　value 该域具有的当前值最初与VALUE=特性(defauttValue)相同,但是,如果脚本修改了该域中的值,则该值将改变<BR>　　方法<BR>　　focus 把焦点从该域移开<BR>　　blur 把焦点移到该域<BR>　　select 选择输入区域</P>
<P>　　B.24 radio对象<BR>　　它是form对象的一个属性,窗体内的一组单选按钮(选项按钮)(&lt;INPUT TYPE=”RADIO”&gt;)。<BR>　　属性<BR>　　checked 复选框或选项按钮(单选按钮)的状态<BR>　　defaultChecked 复选框或选项按钮(单选按钮)的缺省状态<BR>　　length 一组单选按钮中的按钮数<BR>　　name 对象的名字(NAME=特性)<BR>　　value VALUE=特性<BR>　　方法<BR>　　click 模拟鼠标单击按钮<BR>　　事件处理程序<BR>　　onclick 点击</P>
<P>　　B.25 reset 对象<BR>　　它是form对象的一个属性,复位按钮(&lt;INPUT TYPE=”RESET”&gt;)。<BR>　　属性<BR>　　name 对象的名字(NAME=特性)<BR>　　value VALUE=特性<BR>　　方法<BR>　　click 模拟鼠标单击按钮<BR>　　事件处理程序<BR>　　onclick 点击</P>
<P>　　B.26 select对象<BR>　　它是form对象的一个属性,选择框(&lt;SELECT&gt;)。<BR>　　属性<BR>　　length 选项列表中的选项数(&lt;OPTIONS&gt;)<BR>　　name 选项列表的名字(NAME特性)<BR>　　options 列表中的选项数<BR>　　selectedlndex 选项列表中已选中的&lt;OPTION&gt;的索引(位置)<BR>　　text 选项列表中(OPTION)标记之后的文本<BR>　　value 选项列表中的VALUE=特性<BR>　　方法<BR>　　blur 把焦点从选项列表中移走(失去焦点时)<BR>　　focus 把焦点移到选项列表中(得到焦点时)<BR>　　事件处理程序<BR>　　Onblur 失去焦点时事件<BR>　　onchange 更改<BR>　　Onfocus 聚焦事件</P>
<P>　　B.27 string对象<BR>　　它不是另一个对象的属性,而是一个内置对象,即一串字符字符串输入脚本中时必须位于引号内。<BR>　　属性<BR>　　length 字符串中的字符个数<BR>　　方法<BR>　　anchor() 用来把字符串转换到HTML锚点标记内(&lt;A NAME=&gt;)<BR>　　big() 把字符串中的文本变成大字体(&lt;BIG&gt;)<BR>　　blink() 把字符串中的文本变成闪烁字体(&lt;BLINK&gt;)<BR>　　bold() 把字符串中的文本变成黑字体(&lt;B&gt;)<BR>　　charAt() 寻找字符串中指定位置的一个字符<BR>　　fixed() 把字符串中的文本变成固定间距字体(&lt;TT&gt;)<BR>　　fontcolor() 改变字符串中文本的颜色(&lt;FONT COLOR=&gt;)<BR>　　fontsize() 把字符串中的文本变成指定大小(&lt;FONTSIZE=&gt;)<BR>　　indexOf() 用来搜索字符串中的某个特殊字符,并返回该字符的索引位置<BR>　　italics() 把字符串中的文本变成斜字体(&lt;I&gt;)<BR>　　lastlndexOf() 与indexof相似,但是向后搜索最后一个出现的字符<BR>　　link() 用来把字符串转换到HTML链接标记中(&lt;A HREF=&gt;)<BR>　　small() 把字符串中的文本变成小字体(&lt;SMALL&gt;)<BR>　　strike() 把字符串中的文本变成划掉字体(&lt;STRIKE&gt;)<BR>　　sub() 把字符串中的文本变成下标(subscript)字体((SUB&gt;)<BR>　　substring() 返回字符串里指定位置间的一部分字符串<BR>　　sup() 把字符串中的文本变成上标(superscript)字体(&lt;SUP&gt;)<BR>　　toLowerCase() 把字符串中的文本变成小写<BR>　　toUpperCase() 把字符串中的文本变成大写</P>
<P>　　B.28 submit对象<BR>　　它是form对象的一个属性,窗体中的一个提交按钮(&lt;INPUT TYPE=”SUBMIT”&gt;)。<BR>　　属性<BR>　　name 对象的名字(NAME=特性)<BR>　　value VALUE=特性<BR>　　方法<BR>　　click 模拟鼠标单击按钮<BR>　　事件处理程序<BR>　　Onclick 点击</P>
<P>　　B.29 text对象<BR>　　它是form对象的一个属性,宙体中的一个文本域(&lt;INPUT TYPE=”TEXT”&gt;)。<BR>　　属性<BR>　　defaultValue text对象的缺省值(VALUE=特性)<BR>　　name 该对象的名字(NAME=特性)<BR>　　Value 该域具有的当前值,最初与VALUE=特性(defaultValue)相同但是,如果脚本修改了该域中的值,则该值将改变<BR>　　方法<BR>　　blur 把焦点从文本框移开<BR>　　focus 把焦点移到文本框<BR>　　select 选择输入区域<BR>　　事件处理程序<BR>　　Onblur 失去焦点事件<BR>　　Onchange 更改<BR>　　Onfocus 聚焦事件<BR>　　Onselect 选取事件</P>
<P>　　B.30 textarea对象<BR>　　它是form对象的一个属性,宙体中的一个文本区域(&lt;TEXTAREA&gt;)。<BR>　　属性<BR>　　defaultValue textarea对象的缺省值(VALUE=特性)<BR>　　name 该对象的名字(NAME=特性)<BR>　　value 该域具有的当前值,最初与VALUE=特性(defaultValue)相同,但是,如果脚本修改了该域中的值,则该值将改变了。<BR>　　方法<BR>　　blur 把焦点从文本区移开<BR>　　focus 把焦点移到文本区<BR>　　select 选择输入区域事件处理程序<BR>　　事件处理程序<BR>　　Onblur 失去焦点事件<BR>　　Onchange 更改<BR>　　Onfocus 聚焦事件<BR>　　Onselect 选取事件</P>
<P>　　B.31 window对象<BR>　　它是一个顶层对象,而不是另一个对象的属性即浏览器的窗口。<BR>　　属性<BR>　　defaultStatus 缺省的状态条消息<BR>　　document 当前显示的文档(该属性本身也是一个对象)<BR>　　frame 窗口里的一个框架((FRAME&gt;)(该属性本身也是一个对象)<BR>　　frames array 列举窗口的框架对象的数组,按照这些对象在文档中出现的顺序列出(该属性本身也是一个对象)<BR>　　history 窗口的历史列表(该属性本身也是一个对象)<BR>　　length 窗口内的框架数<BR>　　location 窗口所显示文档的完整(绝对)URL(该属性本身也是一个对象)不要把它与如document.location混淆,后者是当前显示文档的URL。用户可以改变window.location(用另一个文档取代当前文档),但却不能改变document.location(因为这是当前显示文档的位置)<BR>　　name 窗口打开时,赋予该窗口的名字<BR>　　opener 代表使用window.open打开当前窗口的脚本所在的窗口(这是Netscape Navigator 3.0beta 3所引入的一个新属性)<BR>　　parent 包含当前框架的窗口的同义词。frame和window对象的一个属性<BR>　　self 当前窗口或框架的同义词<BR>　　status 状态条中的消息<BR>　　top 包含当前框架的最顶层浏览器窗口的同义词<BR>　　window 当前窗口或框架的同义词,与self相同<BR>　　方法<BR>　　alert() 打开一个Alert消息框<BR>　　clearTimeout() 用来终止setTimeout方法的工作<BR>　　close() 关闭窗口<BR>　　confirm() 打开一个Confirm消息框,用户可以选择OK或Cancel,如果用户单击OK,该方法返回true,单击Cancel返回false<BR>　　blur() 把焦点从指定窗口移开(这是Netscape Navigator 3.0 beta 3引入的新方法)<BR>　　focus() 把指定的窗口带到前台(另一个新方法)<BR>　　open() 打开一个新窗口<BR>　　prompt() 打开一个Prompt对话框,用户可向该框键入文本,并把键入的文本返回到脚本<BR>　　setTimeout() 等待一段指定的毫秒数时间,然后运行指令事件处理程序<BR>　　事件处理程序<BR>　　Onload() 页面载入时触发<BR>　　Onunload() 页面关闭时触发</P><img src ="http://www.cnitblog.com/wjh1025/aggbug/5735.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2005-12-23 22:29 <a href="http://www.cnitblog.com/wjh1025/archive/2005/12/23/5735.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ASP编程网址</title><link>http://www.cnitblog.com/wjh1025/archive/2005/12/21/5678.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Wed, 21 Dec 2005 13:29:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2005/12/21/5678.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/5678.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2005/12/21/5678.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/5678.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/5678.html</trackback:ping><description><![CDATA[ASP下载特区&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://www.asp300.com/" target=_blank><FONT color=#003366>http://www.asp300.com</FONT></A><BR>ASP酷技术网:&nbsp; &nbsp;&nbsp;&nbsp;<A href="http://www.aspcool.com/" target=_blank><FONT color=#003366>http://www.aspcool.com</FONT></A>&nbsp;&nbsp;<BR>ASP/ASP.net太平洋学院:&nbsp; &nbsp;<A href="http://www.pconline.com.cn/pcedu/empolder/wz/asp/index.html" target=_blank><FONT color=#003366>http://www.pconline.com.cn/pcedu/empolder/wz/asp/index.html</FONT></A><BR>ASP动网先锋:&nbsp; &nbsp;&nbsp;&nbsp;<A href="http://www.aspsky.net/" target=_blank><FONT color=#003366>http://www.aspsky.net</FONT></A><BR>中国DotNet俱乐部:&nbsp;&nbsp;<A href="http://www.chinaspx.com/" target=_blank><FONT color=#003366>http://www.chinaspx.com</FONT></A><BR>DOTNET中华网:&nbsp; &nbsp; <A href="http://www.aspxcn.com/" target=_blank><FONT color=#003366>http://www.aspxcn.com</FONT></A><BR>asp讨论板&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<A href="http://asptalk.dhs.org/" target=_blank><FONT color=#003366>http://asptalk.dhs.org</FONT></A><BR>ASP动感新网&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://www.booro.com/" target=_blank><FONT color=#003366>http://www.booro.com</FONT></A><BR>LEARNASP（EN）&nbsp; &nbsp;<A href="http://www.learnasp.com/" target=_blank><FONT color=#003366>http://www.learnasp.com</FONT></A><BR>asp新生代&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<A href="http://www.editasp.com/" target=_blank><FONT color=#003366>http://www.editasp.com</FONT></A><BR>网人俱乐部&nbsp; &nbsp;&nbsp; &nbsp; <A href="http://www.wrclub.net/" target=_blank><FONT color=#003366>http://www.wrclub.net</FONT></A><BR>中国ＢＳ网&nbsp; &nbsp;&nbsp; &nbsp; <A href="http://www.chinabs.net/" target=_blank><FONT color=#003366>http://www.chinabs.net</FONT></A><BR>donet中文资源网&nbsp;&nbsp;<A href="http://www.cndotnet.net/" target=_blank><FONT color=#003366>http://www.cndotnet.net</FONT></A><BR>ASP源代码网站&nbsp; &nbsp; <A href="http://www.asp100.net/" target=_blank><FONT color=#003366>http://www.asp100.net</FONT></A><BR>ASP中文网站&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://www.2yup.com/asp" target=_blank><FONT color=#003366>http://www.2yup.com/asp</FONT></A><BR>ASP自由程序网&nbsp; &nbsp; <A href="http://www.xfxd.com/babycrazy" target=_blank><FONT color=#003366>http://www.xfxd.com/babycrazy</FONT></A><BR>ASP精品站&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<A href="http://www.asp999.com/" target=_blank><FONT color=#003366>http://www.asp999.com</FONT></A> <BR>简单ASP&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <A href="http://loos.126.com/" target=_blank><FONT color=#003366>http://loos.126.com</FONT></A><BR>A S P - 空间&nbsp; &nbsp;&nbsp;&nbsp;<A href="http://asproom.x168.net/ql" target=_blank><FONT color=#003366>http://asproom.x168.net/ql</FONT></A><BR>ASP中文网站&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://www.2yup.com/asp" target=_blank><FONT color=#003366>http://www.2yup.com/asp</FONT></A>" <BR>ASP百分百源代码&nbsp;&nbsp;<A href="http://www.asp100.net/" target=_blank><FONT color=#003366>http://www.asp100.net</FONT></A>&nbsp; &nbsp; <BR>源码之家&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://www.mycodes.net/" target=_blank><FONT color=#003366>http://www.mycodes.net</FONT></A><BR>asp小站&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <A href="http://yanhang00.yeah.net/" target=_blank><FONT color=#003366>http://yanhang00.yeah.net</FONT></A><BR>学生网ASP频道&nbsp; &nbsp; <A href="http://www.6to23.com/s11" target=_blank><FONT color=#003366>http://www.6to23.com/s11</FONT></A><BR>天极网-ASP.NET专题&nbsp; &nbsp;<A href="http://www.yesky.com/20020806/1623844.shtml" target=_blank><FONT color=#003366>http://www.yesky.com/20020806/1623844.shtml</FONT></A><BR>天新网&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<A href="http://www.21tx.com/" target=_blank><FONT color=#003366>http://www.21tx.com</FONT></A><BR>厚街在线&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://www.dldldl.com/" target=_blank><FONT color=#003366>http://www.dldldl.com</FONT></A><BR>西部联盟&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://www.xbasp.net/" target=_blank><FONT color=#003366>http://www.xbasp.net</FONT></A><BR>Asp教程目录&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://chinese.pku.edu.cn/netstudy/aspteach/index.asp" target=_blank><FONT color=#003366>http://chinese.pku.edu.cn/netstudy/aspteach/index.asp</FONT></A><BR>赛迪网源码下载&nbsp; &nbsp;<A href="http://www.ccidnet.com/tech/msrc" target=_blank><FONT color=#003366>http://www.ccidnet.com/tech/msrc</FONT></A><BR>互动时代&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://www.hoodle.net/" target=_blank><FONT color=#003366>http://www.hoodle.net</FONT></A><BR>.net学习&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://www.3bull.com/" target=_blank><FONT color=#003366>http://www.3bull.com</FONT></A><BR>阿江&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <A href="http://www.ajiang.net/" target=_blank><FONT color=#003366>http://www.ajiang.net</FONT></A><BR>红玫瑰教程站电脑操作教程&nbsp; &nbsp;&nbsp;&nbsp;<A href="http://netschool.ayinfo.ha.cn/aspphp.htm" target=_blank><FONT color=#003366>http://netschool.ayinfo.ha.cn/aspphp.htm</FONT></A><BR>ASP/JSP技术网&nbsp; &nbsp; <A href="http://www.aspjsp.net/" target=_blank><FONT color=#003366>http://www.aspjsp.net</FONT></A><BR>好易asp下载&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://asp.weboke.com/" target=_blank><FONT color=#003366>http://asp.weboke.com</FONT></A><BR>动网巴士&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://aspbus.6to23.com/" target=_blank><FONT color=#003366>http://aspbus.6to23.com</FONT></A><BR>科技园&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<A href="http://www.tomda.com.cn/" target=_blank><FONT color=#003366>http://www.tomda.com.cn</FONT></A><BR>ASP论坛&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <A href="http://www.dvbbs.net/" target=_blank><FONT color=#003366>http://www.dvbbs.net</FONT></A><BR>ASP教育在线&nbsp; &nbsp;&nbsp; &nbsp;<A href="http://www.aspedu.com/" target=_blank><FONT color=#003366>http://www.aspedu.com</FONT></A><BR>ASP论坛&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <A href="http://www.leadbbs.com/" target=_blank><FONT color=#003366>http://www.leadbbs.com</FONT></A><BR>搜狐ASP网址集&nbsp; &nbsp; <A href="http://www.hao123.com/fra/homepage/sohuasp.htm" target=_blank><FONT color=#003366>http://www.hao123.com/fra/homepage/sohuasp.htm</FONT></A><BR>中文雅虎ASP网址集&nbsp; &nbsp; <A href="http://www.hao123.com/fra/homepage/yahooasp.htm" target=_blank><FONT color=#003366>http://www.hao123.com/fra/homepage/yahooasp.htm</FONT></A><BR>新浪ASP网址集&nbsp; &nbsp; <A href="http://www.hao123.com/fra/homepage/sinaasp.htm" target=_blank><FONT color=#003366>http://www.hao123.com/fra/homepage/sinaasp.htm</FONT></A><BR>新浪ASP网址集(个人)&nbsp;&nbsp;<A href="http://www.hao123.com/fra/homepage/sinaaspper.htm" target=_blank><FONT color=#003366>http://www.hao123.com/fra/homepage/sinaaspper.htm</FONT></A><BR><BR><BR><img src ="http://www.cnitblog.com/wjh1025/aggbug/5678.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2005-12-21 21:29 <a href="http://www.cnitblog.com/wjh1025/archive/2005/12/21/5678.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SVG中的声音关联</title><link>http://www.cnitblog.com/wjh1025/archive/2005/12/19/5597.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Mon, 19 Dec 2005 13:40:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2005/12/19/5597.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/5597.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2005/12/19/5597.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/5597.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/5597.html</trackback:ping><description><![CDATA[<BR>
<DIV width="100%">
<DIV style="FLOAT: right"></DIV>
<DIV>
<TABLE class=tablebody2 style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" width="90%" border=0>
<TBODY>
<TR>
<TD style="FONT-SIZE: 9pt; LINE-HEIGHT: 12pt" width="100%"><IMG alt="" src="http://bbs.xml.org.cn/face/face1.gif" border=0 dypop="发贴心情">&nbsp;<B>SVG中的声音关联</B></TD></TR></TBODY></TABLE>源代码:&nbsp;<BR>&nbsp;<BR>＜?xml&nbsp;version=＂1.0＂&nbsp;encoding=＂utf-8＂?＞ 
<P></P>
<P>＜svg&nbsp;xmlns:a=＂<A class=contentlink href="http://www.adobe.com/svg10-extensions" target=_blank><FONT color=#4455aa>http://www.adobe.com/svg10-extensions</FONT></A>＂&nbsp;a:timeline=＂independent＂&nbsp;width=＂100＂&nbsp;height=＂50＂＞</P>
<P>＜a:audio&nbsp;xlink:href=＂love.mp3＂&nbsp;begin=＂0s＂&nbsp;/＞</P>
<P>＜text&nbsp;x=＂50＂&nbsp;y=＂20＂&nbsp;style=＂fill:&nbsp;red;&nbsp;text-anchor:&nbsp;middle＂＞<BR>MP3+SVG=COOL<BR>＜/text＞</P>
<P>＜/svg＞<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>讲解:&nbsp;<BR>&nbsp;<BR>SVG支持外部音乐文件的关联,通过SVG插件播放(建议使用adobe&nbsp;svg插件2.0&nbsp;beta版).音乐文件格式可以是wav也可以是mp3.</P>
<P>绿色部分是声明部分.xmlns是xml的名字空间.(很奇怪,如果不用<A class=contentlink href="http://www.adobe.com/svg10-extentions" target=_blank><FONT color=#4455aa>http://www.adobe.com/svg10-extentions</FONT></A>作为名字空间,音乐无法正常播放,其原因还不明确--蓝骑士注).a:timeline声明时间线的长度,这里为不确定值independent.</P>
<P>红色部分是链接属性,播放音乐一定要使用a:audio标签.xlink:href指明链接地址,可以是绝对路径也可以是相对路径.begin表示音乐从哪个时间开始播放.可以自定义数值.</P>
<P>这里的mp3长度为90多k</P></DIV></DIV><img src ="http://www.cnitblog.com/wjh1025/aggbug/5597.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2005-12-19 21:40 <a href="http://www.cnitblog.com/wjh1025/archive/2005/12/19/5597.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> SVG中的动画技术(2)</title><link>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5472.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Fri, 16 Dec 2005 10:59:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5472.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/5472.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5472.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/5472.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/5472.html</trackback:ping><description><![CDATA[<FONT color=#008000><IMG alt="" src="http://bbs.xml.org.cn/face/face1.gif" border=0 dypop="发贴心情">&nbsp;<B>SVG中的动画技术(2)</B><BR></FONT>
<DIV width="100%">
<DIV style="FLOAT: right"><FONT color=#008000></FONT></DIV>
<DIV><FONT color=#008000>SVG中的动画技术(2)&nbsp;<BR>下面再看一个沿指定路径运动的例子： </FONT>
<P></P>
<P><FONT color=#008000>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"&nbsp;standalone="no"?&gt;<BR>&lt;!DOCTYPE&nbsp;svg&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;SVG&nbsp;20010904//EN"&nbsp;<BR>"</FONT><A class=contentlink href='http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' target=_blank><FONT color=#008000>http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</FONT></A><BR><FONT color=#008000>&lt;svg&nbsp;width="500"&nbsp;height="300"&nbsp;viewBox="0&nbsp;0&nbsp;500&nbsp;300"<BR>xmlns="</FONT><A class=contentlink href='http://www.w3.org/2000/svg">' target=_blank><FONT color=#008000>http://www.w3.org/2000/svg"&gt;</FONT></A><BR><FONT color=#008000>&lt;desc&gt;沿路径运动的例子&lt;/desc&gt;<BR>&lt;defs&gt;<BR>&lt;!--&nbsp;下面定义渐变颜色&nbsp;--&gt;<BR>&lt;linearGradient&nbsp;id="grad1"&nbsp;x1="0"&nbsp;y1="0"&nbsp;x2="0"&nbsp;y2="100%"&nbsp;gradientUnits="userSpace"&gt;<BR>&lt;stop&nbsp;offset="0%"&nbsp;style="stop-color:&nbsp;#88f;"/&gt;<BR>&lt;stop&nbsp;offset="100%"&nbsp;style="stop-color:&nbsp;#008;"/&gt;<BR>&lt;/linearGradient&gt;<BR>&lt;/defs&gt;<BR>&lt;rect&nbsp;x="1"&nbsp;y="1"&nbsp;width="498"&nbsp;height="298"<BR>fill="none"&nbsp;stroke="blue"&nbsp;stroke-width="2"&nbsp;/&gt;</FONT></P>
<P><FONT color=#008000>&lt;!--&nbsp;下面的代码画出一个路径&nbsp;--&gt;<BR>&lt;path&nbsp;d="M100,250&nbsp;C&nbsp;100,50&nbsp;400,50&nbsp;400,250"<BR>fill="none"&nbsp;stroke="blue"&nbsp;stroke-width="8"&nbsp;/&gt;</FONT></P>
<P><FONT color=#008000>&lt;!--&nbsp;下面的这个圆将沿着定义的轨迹运动&nbsp;--&gt;<BR>&lt;circle&nbsp;r="25"&nbsp;style="fill:url(#grad1)"&gt;<BR>&lt;!--&nbsp;定义动画的运动轨迹&nbsp;--&gt;<BR>&lt;animateMotion&nbsp;dur="6s"&nbsp;repeatCount="indefinite"<BR>path="M100,250&nbsp;C&nbsp;100,50&nbsp;400,50&nbsp;400,250"&nbsp;rotate="auto"&nbsp;/&gt;<BR>&lt;/circle&gt;<BR>&lt;text&nbsp;x="145"&nbsp;y="285"&nbsp;style="font-size:12pt"&gt;</FONT><A class=contentlink href="http://lucky.myrice.com</text>" target=_blank><FONT color=#008000>http://lucky.myrice.com&lt;/text&gt;</FONT></A><BR><FONT color=#008000>&lt;/svg&gt;</FONT></P>
<P><FONT color=#008000>&nbsp;&nbsp;&nbsp;&nbsp;上面的例子应用了animateMotion动画元素，其属性设定和前面类似。该例子的效果如图所示：&nbsp;</FONT></P>
<P><BR><FONT color=#008000>&nbsp;&nbsp;&nbsp;&nbsp;SVG&nbsp;DOM产生动画的方式是由脚本语言调用DOM对象的属性和方法实现的，在SVG中使用脚本语言和HTML中类似，首先是指定脚本的语言类型：有两种办法可以指定脚本的语言类型</FONT></P>
<P><FONT color=#008000>1），在SVG元素里使用contentScriptType属性，可以指定整个文档里使用的缺省脚本语言类型。&nbsp;<BR>语法如下：<BR>&lt;svg&nbsp;contentScripttype="content-type"&gt;<BR>content-type指定一种媒体类型，默认是"text/ecmascript"<BR>2），在script元素里使用type属性来声明该段脚本所使用的语言类型。<BR>语法如下：<BR>&lt;script&nbsp;type="content-type"&gt;<BR>content-type就是所使用的媒体类型。&nbsp;</FONT></P>
<P><FONT color=#008000>&nbsp;&nbsp;&nbsp;&nbsp;SVG里的script元素和HTML里的完全一致。任何script元素里定义的函数都可以应用到整个文档里，也可以通过xlink:href属性，指定一个脚本文件的URL地址，比如：&lt;script&nbsp;type="text/<I>javascript</I>"&nbsp;xlink:href="test.js"&gt;&lt;/script&gt;<BR></FONT></P></DIV></DIV><img src ="http://www.cnitblog.com/wjh1025/aggbug/5472.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2005-12-16 18:59 <a href="http://www.cnitblog.com/wjh1025/archive/2005/12/16/5472.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SVG中的动画技术</title><link>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5471.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Fri, 16 Dec 2005 10:52:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5471.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/5471.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5471.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/5471.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/5471.html</trackback:ping><description><![CDATA[<FONT color=#008000>&nbsp;</FONT>
<TABLE class=tablebody2 style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" width="90%" border=0>
<TBODY>
<TR>
<TD style="FONT-SIZE: 9pt; LINE-HEIGHT: 12pt" width="100%"><FONT color=#008000><IMG alt="" src="http://bbs.xml.org.cn/face/face1.gif" border=0 dypop="发贴心情">&nbsp;<B>SVG中的动画技术</B><BR></FONT>
<DIV width="100%">
<DIV style="FLOAT: right"><FONT color=#008000></FONT></DIV>
<DIV><FONT color=#008000>SVG中的动画技术</FONT></DIV></DIV></TD></TR></TBODY></TABLE><BR><FONT color=#008000>&nbsp; </FONT>
<P></P>
<P><FONT color=#008000>&nbsp;&nbsp;<BR>动画技术是互联网中不可缺少的一个重要组成部分，是吸引访问者的重要手段之一，SVG也同样有能力随时改变矢量图象外在表现的能力。SVG中生成动画的方式有：&nbsp;</FONT></P>
<P><FONT color=#008000>1）利用SVG提供的动画元素实现：由于SVG的内容可以定义成动态变化的，因此，利用SVG提供的各种动画元素，我们就可以得到各种动画效果，比如：沿某路径运动、渐隐渐现、旋转、缩放、改变颜色等。&nbsp;</FONT></P>
<P><FONT color=#008000>2）使用SVG&nbsp;DOM：由于SVG&nbsp;DOM遵循DOM1、DOM2规范的大部分内容，因此，SVG中的每个属性和样式都可以通过脚本编程来访问；另外，SVG也提供了一套扩展的DOM接口，让通过脚本编程实现动画效果的手段更方便快捷。脚本语言中的定时器可以很好地触发和控制图象的运动。&nbsp;</FONT></P>
<P><FONT color=#008000>SVG的动画元素标准的指定者与SYMM（Synchronized&nbsp;Multimedia）工作组合作，共同编写了SMIL动画规范，这个规范描绘了XML文档结构中使用的通用的动画特征集。SVG不但实现了SMIL的动画规范，同时也提供了一些SVG的特殊扩展。SVG定义了比SMIL动画更为严格的错误处理程序，当文档中有任何错误产生时，动画都将会停止。&nbsp;</FONT></P>
<P><FONT color=#008000>SVG支持SMIL（Synchronized&nbsp;Multimedia&nbsp;Integration&nbsp;Language）动画规范中定义的下面的动画元素：&nbsp;</FONT></P>
<P><FONT color=#008000>animate：改变SVG元素数值属性的不同值&nbsp;</FONT></P>
<P><FONT color=#008000>set：是animate的简化，主要用来改变非数值属性的属性值，比如visibility属性等&nbsp;</FONT></P>
<P><FONT color=#008000>animateMotion：沿某运动路线移动SVG元素&nbsp;</FONT></P>
<P><FONT color=#008000>animateColor：改变某些元素的颜色属性值&nbsp;</FONT></P>
<P><FONT color=#008000>SVG对SMIL动画的扩展元素和属性有：&nbsp;</FONT></P>
<P><FONT color=#008000>animateTransform：改变SVG转换的转换属性值&nbsp;</FONT></P>
<P><FONT color=#008000>path属性：改变animateMotion元素中path属性的所有特性。&nbsp;</FONT></P>
<P><FONT color=#008000>mpath元素：SVG允许animateMotion元素包含mpath子元素，它能够引用SVG中path元素的路径定义&nbsp;</FONT></P>
<P><FONT color=#008000>rotate属性：SVG为animateMotion增加一个rotate属性，用来控制一个对象是否自动进行旋转。&nbsp;</FONT></P>
<P><FONT color=#008000>下面通过一个简单的例子，来看一看SVG是如何实现动画效果的：&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"&nbsp;standalone="no"?&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;!DOCTYPE&nbsp;svg&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;SVG&nbsp;20010904//EN"&nbsp;&nbsp;</FONT></P>
<P><FONT color=#008000>"</FONT><A class=contentlink href='http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' target=_blank><FONT color=#008000>http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</FONT></A><FONT color=#008000>&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;svg&nbsp;width="500"&nbsp;height="400"&nbsp;</FONT></P>
<P><FONT color=#008000>xmlns="</FONT><A class=contentlink href='http://www.w3.org/2000/svg">' target=_blank><FONT color=#008000>http://www.w3.org/2000/svg"&gt;</FONT></A><FONT color=#008000>&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;desc&gt;本例子说明SVG的动画元素&lt;/desc&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;defs&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;!--&nbsp;下面定义渐变效果&nbsp;--&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;linearGradient&nbsp;id="grad1"&nbsp;x1="0"&nbsp;y1="0"&nbsp;x2="0"&nbsp;y2="100%"&nbsp;gradientUnits="userSpace"&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;stop&nbsp;offset="0%"&nbsp;style="stop-color:&nbsp;#88f;"/&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;stop&nbsp;offset="100%"&nbsp;style="stop-color:&nbsp;#008;"/&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;/linearGradient&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;/defs&gt;&nbsp;</FONT></P>
<P><BR><FONT color=#008000>&lt;!--&nbsp;下面代码说明了如何使用animate元素来使圆产生动画效果，同时改变圆心的位置和半径的大小&nbsp;--&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;circle&nbsp;id="RectElement"&nbsp;cx="50"&nbsp;cy="50"&nbsp;r="50"&nbsp;&nbsp;</FONT></P>
<P><FONT color=#008000>fill="rgb(255,0,0)"&nbsp;style="fill:&nbsp;url(#grad1);"&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;animate&nbsp;attributeName="cx"&nbsp;attributeType="XML"&nbsp;</FONT></P>
<P><FONT color=#008000>xlink:href="#RectElement"&nbsp;begin="0s"&nbsp;dur="9s"&nbsp;fill="freeze"&nbsp;from="50"&nbsp;to="250"&nbsp;/&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;animate&nbsp;attributeName="cy"&nbsp;attributeType="XML"&nbsp;</FONT></P>
<P><FONT color=#008000>xlink:href="#RectElement"&nbsp;begin="0s"&nbsp;dur="9s"&nbsp;fill="freeze"&nbsp;from="150"&nbsp;to="152"&nbsp;/&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;animate&nbsp;attributeName="r"&nbsp;attributeType="XML"&nbsp;</FONT></P>
<P><FONT color=#008000>xlink:href="#RectElement"&nbsp;begin="0s"&nbsp;dur="9s"&nbsp;fill="freeze"&nbsp;from="50"&nbsp;to="150"&nbsp;/&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;/circle&gt;&nbsp;</FONT></P>
<P><BR><FONT color=#008000>&lt;!--&nbsp;建立一个新的坐标系统，并使文字旋转和放大&nbsp;--&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;g&nbsp;transform="translate(50,50)"&nbsp;&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;!--&nbsp;下面的代码定义了“Hello,World！”这段文字，说明了'set','animateMotion',&nbsp;</FONT></P>
<P><FONT color=#008000>'animateColor'和'animateTransform'元素的用法。&nbsp;--&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;text&nbsp;id="TextElement"&nbsp;x="0"&nbsp;y="0"&nbsp;</FONT></P>
<P><FONT color=#008000>font-family="宋体-18030"&nbsp;font-size="18"&nbsp;visibility="hidden"&nbsp;&gt;&nbsp;&nbsp;</FONT></P>
<P><FONT color=#008000>Hello,World!&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;set&nbsp;attributeName="visibility"&nbsp;attributeType="CSS"&nbsp;to="visible"&nbsp;</FONT></P>
<P><FONT color=#008000>begin="4s"&nbsp;dur="6s"&nbsp;fill="freeze"&nbsp;/&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;animateMotion&nbsp;path="M&nbsp;0&nbsp;20&nbsp;L&nbsp;50&nbsp;120"&nbsp;&nbsp;</FONT></P>
<P><FONT color=#008000>begin="4s"&nbsp;dur="6s"&nbsp;fill="freeze"&nbsp;/&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;animateColor&nbsp;attributeName="fill"&nbsp;attributeType="CSS"&nbsp;</FONT></P>
<P><FONT color=#008000>from="rgb(0,0,255)"&nbsp;to="rgb(128,0,0)"&nbsp;</FONT></P>
<P><FONT color=#008000>begin="4s"&nbsp;dur="6s"&nbsp;fill="freeze"&nbsp;/&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;animateTransform&nbsp;attributeName="transform"&nbsp;attributeType="XML"&nbsp;</FONT></P>
<P><FONT color=#008000>type="rotate"&nbsp;from="-90"&nbsp;to="0"&nbsp;</FONT></P>
<P><FONT color=#008000>begin="4s"&nbsp;dur="6s"&nbsp;fill="freeze"&nbsp;/&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;animateTransform&nbsp;attributeName="transform"&nbsp;attributeType="XML"&nbsp;</FONT></P>
<P><FONT color=#008000>type="scale"&nbsp;from="1"&nbsp;to="3"&nbsp;additive="sum"&nbsp;</FONT></P>
<P><FONT color=#008000>begin="4s"&nbsp;dur="6s"&nbsp;fill="freeze"&nbsp;/&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;/text&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;text&nbsp;x="145"&nbsp;y="285"&gt;</FONT><A class=contentlink href="http://lucky.myrice.com</text>" target=_blank><FONT color=#008000>http://lucky.myrice.com&lt;/text&gt;</FONT></A><FONT color=#008000>&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;/g&gt;&nbsp;</FONT></P>
<P><FONT color=#008000>&lt;/svg&gt;<BR></FONT></P><img src ="http://www.cnitblog.com/wjh1025/aggbug/5471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2005-12-16 18:52 <a href="http://www.cnitblog.com/wjh1025/archive/2005/12/16/5471.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SVG中的声音关联</title><link>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5470.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Fri, 16 Dec 2005 10:50:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5470.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/5470.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5470.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/5470.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/5470.html</trackback:ping><description><![CDATA[<IMG alt="" src="http://bbs.xml.org.cn/face/face1.gif" border=0 dypop="发贴心情">&nbsp;<B>SVG中的声音关联</B><BR>
<DIV width="100%">
<DIV style="FLOAT: right"></DIV>
<DIV>声音&nbsp;<BR>源代码:&nbsp;<BR>&nbsp;<BR>＜?xml&nbsp;version=＂1.0＂&nbsp;encoding=＂utf-8＂?＞ 
<P></P>
<P>＜svg&nbsp;xmlns:a=＂<A class=contentlink href="http://www.adobe.com/svg10-extensions" target=_blank><FONT color=#4455aa>http://www.adobe.com/svg10-extensions</FONT></A>＂&nbsp;a:timeline=＂independent＂&nbsp;width=＂100＂&nbsp;height=＂50＂＞</P>
<P>＜a:audio&nbsp;xlink:href=＂love.mp3＂&nbsp;begin=＂0s＂&nbsp;/＞</P>
<P>＜text&nbsp;x=＂50＂&nbsp;y=＂20＂&nbsp;style=＂fill:&nbsp;red;&nbsp;text-anchor:&nbsp;middle＂＞<BR>MP3+SVG=COOL<BR>＜/text＞</P>
<P>＜/svg＞<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>讲解:&nbsp;<BR>&nbsp;<BR>SVG支持外部音乐文件的关联,通过SVG插件播放(建议使用adobe&nbsp;svg插件2.0&nbsp;beta版).音乐文件格式可以是wav也可以是mp3.</P>
<P>绿色部分是声明部分.xmlns是xml的名字空间.(很奇怪,如果不用<A class=contentlink href="http://www.adobe.com/svg10-extentions" target=_blank><FONT color=#4455aa>http://www.adobe.com/svg10-extentions</FONT></A>作为名字空间,音乐无法正常播放,其原因还不明确--蓝骑士注).a:timeline声明时间线的长度,这里为不确定值independent.</P>
<P>红色部分是链接属性,播放音乐一定要使用a:audio标签.xlink:href指明链接地址,可以是绝对路径也可以是相对路径.begin表示音乐从哪个时间开始播放.可以自定义数值.</P>
<P>这里的mp3长度为90多k</P></DIV></DIV><img src ="http://www.cnitblog.com/wjh1025/aggbug/5470.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2005-12-16 18:50 <a href="http://www.cnitblog.com/wjh1025/archive/2005/12/16/5470.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在SVG中使用滤镜效果和输出文字</title><link>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5469.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Fri, 16 Dec 2005 10:49:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5469.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/5469.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5469.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/5469.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/5469.html</trackback:ping><description><![CDATA[<TABLE class=tablebody2 style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" width="90%" border=0>
<TBODY>
<TR>
<TD style="FONT-SIZE: 9pt; LINE-HEIGHT: 12pt" width="100%"><IMG alt="" src="http://bbs.xml.org.cn/face/face1.gif" border=0 dypop="发贴心情">&nbsp;<B>在SVG中使用滤镜效果和输出文字</B><BR>
<DIV width="100%">
<DIV style="FLOAT: right"></DIV>
<DIV>在SVG中使用滤镜效果和输出文字
<P></P>
<P>为了使图像更生动形象，可以在SVG中使用滤镜效果和输出文字的基本方法。&nbsp;&nbsp;&nbsp;<BR>一、在SVG中使用滤镜效果&nbsp;<BR>在SVG中，我们可以直接对基本图象和文字使用这些效果，在SVG使用滤竟效果就和Adobe&nbsp;Photoshop、Macromedia&nbsp;Fireworks中一样，比如：阴影、高斯模糊、金属效果，颜色渐变等，SVG中的滤镜效果有feBlend、feColorMatrix、feComponentTransfer、feComposite、feConvolveMatrix、feDiffuseLighting、feDisplacementMap、feFlood、feGaussianBlur、feImage、feMerge、feMorphology、feOffset、feSpecularLighting、feTile、feTurbalance、feDistantLight、fePointLight、feSpotLight等。我们可以单独使用这些滤镜效果，也可以组合起来使用。由于这些滤镜的组合很多，我们很难在较短的篇幅里全部讲述，我们只是举其中的几个例子，来让初步认识一下在SVG中如何使用滤镜。&nbsp;&nbsp;&nbsp;<BR>&nbsp;要在SVG中使用滤镜效果，必须把滤镜的定义嵌套在&lt;defs&gt;标记中，顾名思义，defs就是定义(definitions)的意思，它的作用就是定义一些特殊的元素，滤镜的定义也必须放到其中。定义一个滤镜效果，必须使用&lt;filter&gt;标记，同时必须指定一个id名（即唯一标识符），用以标识这个效果是应用到哪些图像上，下面举个具体的例子来加以说明：&nbsp;<BR>&nbsp;&lt;?xml&nbsp;version="1.0"&nbsp;standalone="no"?&gt;&nbsp;<BR>&lt;!DOCTYPE&nbsp;svg&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;SVG&nbsp;1.0//EN"&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>"<A class=contentlink href='http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' target=_blank><FONT color=#4455aa>http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</FONT></A>&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;svg&nbsp;width="400"&nbsp;height="400"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;filter&nbsp;id="Gaussian_Blur_Test_for_Mengxianhui"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feGaussianBlur&nbsp;in="SourceGraphic"&nbsp;stdDeviation="2"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/filter&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;rect&nbsp;x="59"&nbsp;y="77"&nbsp;width="163"&nbsp;height="34"&nbsp;style="filter:url(#Gaussian_Blur_Test_for_Mengxianhui);fill:rgb(128,128,255);stroke:rgb(128,0,128);stroke-width:5;"&nbsp;/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/svg&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>在上面的例子中，&lt;filter&nbsp;id="Gaussian_Blur_Test_for_Mengxianhui"&gt;标记定义了一个高斯模糊的滤镜效果，id值在整个文件中应当是唯一的，文档中的其它元素也可以通过这个id值来重复使用这个滤镜，换句话说，&lt;filter&nbsp;id="Gaussian_Blur_Test_for_Mengxianhui"&gt;就相当于一个模板，可以多次被调用。当我们要对某元素使用这个滤镜时，采用的语法是：filter：url(#Gaussian_Blur_Test_for_Mengxianhui)，并把它做为style属性的一部分，圆括号的“#”不能省略，它后面的文字就是滤镜定义中的id值。滤镜效果的定义放到&lt;feGaussianBlur&nbsp;in="SourceGraphic"&nbsp;stdDeviation="2"/&gt;标记中，前导符“fe”在所有的滤镜中都有，是filter&nbsp;effect的缩写。例子中的滤镜效果是高斯模糊，stdDeviation属性描述模糊的强弱，数值越大，就越模糊。in="SourceGraphic"定义模糊模糊的效果是对整个图像，若使用SourceAlpha，则表示模糊效果是对图像的alpha通道的，in属性除了用在结果输出之外只有这两种可选择使用的值，在其它滤镜里也是这样，下面也将会讲到。高斯模糊中的stdDeviation这个属性值描述高斯模糊的偏离大小，如果给出两个属性值，则前一个参数代表沿x轴方向的偏离值，后一个值代表沿y轴的偏离值；如果给出一个参数，则代表沿x，y轴的偏离值是一样的。上面的例子的效果如下图所示：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P><BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>前面已经提到，对一个SVG图像来说，可以组合应用多个滤镜效果，下面看一个紊乱的效果：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;?xml&nbsp;version="1.0"&nbsp;standalone="no"?&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;!DOCTYPE&nbsp;svg&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;SVG&nbsp;1.0//EN"&nbsp;"<A class=contentlink href='http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' target=_blank><FONT color=#4455aa>http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</FONT></A>&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;svg&nbsp;width="100%"&nbsp;height="100%"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;filter&nbsp;id="Turbulence"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feTurbulence&nbsp;baseFrequency="0.03&nbsp;0.02"&nbsp;numOctaves="5"&nbsp;type="turbulence"&nbsp;result="turbulenceOutput"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feComposite&nbsp;in="turbulenceOutput"&nbsp;in2="SourceAlpha"&nbsp;operator="in"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/filter&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;path&nbsp;d="M193.1&nbsp;79.292&nbsp;C224.16&nbsp;88.7968&nbsp;242.127&nbsp;121.499&nbsp;232.627&nbsp;154.414&nbsp;C223.127&nbsp;187.328&nbsp;239.995&nbsp;220.003&nbsp;271.913&nbsp;229.504&nbsp;C303.83&nbsp;239.006&nbsp;336.35&nbsp;218.61&nbsp;345&nbsp;188.876&nbsp;C323.124&nbsp;264.909&nbsp;248.755&nbsp;285.576&nbsp;198.994&nbsp;270.349&nbsp;C149.231&nbsp;255.12&nbsp;98.1789&nbsp;196.096&nbsp;120.144&nbsp;119.992&nbsp;C129.376&nbsp;88.0081&nbsp;162.039&nbsp;69.7869&nbsp;193.1&nbsp;79.292&nbsp;zM167.341&nbsp;136.242&nbsp;C167.341&nbsp;141.144&nbsp;170.673&nbsp;145.311&nbsp;176.03&nbsp;145.311&nbsp;C181.386&nbsp;145.311&nbsp;184.242&nbsp;140.899&nbsp;184.242&nbsp;136.242&nbsp;C184.242&nbsp;131.584&nbsp;180.796&nbsp;127.762&nbsp;175.91&nbsp;127.785&nbsp;C171.025&nbsp;127.809&nbsp;167.341&nbsp;131.339&nbsp;167.341&nbsp;136.242&nbsp;z"&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>style="fill:rgb(192,192,255);stroke:rgb(130,0,61);stroke-width:1;filter:url(#Turbulence);"&nbsp;/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/svg&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>这个例子里使用了feTurbulence和feComposite滤镜的效果，在SVG中，滤镜可以使用result和in属性进行滤镜的相互嵌套。例子中，在turbulence滤镜里使用了result="turbulenceOutput"属性，表示这个滤镜的结果要输出到别的滤镜中去，feComposite使用in="turbulenceOutput"属性来使用上一个滤镜的输出结果，由于在这个滤镜中已经使用了in属性，因此，SVG提供了in2属性供我们使用，in和in2的作用是一样的；例子中in2="SourceAlpha"属性定义了这个滤镜的单一通道；operator&nbsp;属性是feComposite滤镜特有的，用来描述合成的类型，可设定over，in，out，atop，xor，arithmetic中的任一个值，大家可以替换不同的值来查看效果的变化。例子中的baseFrequency属性用来描述混沌出现的频率，有x、y两方向的值可以设置。numOctaves属性设定混沌的间隔，可选1-8，默认为1。上面例子的结果如下：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P><BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>下面是一个比较复杂的例子，大家可以看看他的效果：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;svg&nbsp;width="100%"&nbsp;height="100%"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;filter&nbsp;id="metallic"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feGaussianBlur&nbsp;result="blurredAlpha"&nbsp;in="SourceAlpha"&nbsp;stdDeviation="3"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feOffset&nbsp;result="offsetBlurredAlpha"&nbsp;in="blurredAlpha"&nbsp;dx="2"&nbsp;dy="1"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feDiffuseLighting&nbsp;result="bumpMapDiffuse"&nbsp;in="blurredAlpha"&nbsp;surfaceScale="5"&nbsp;diffuseConstant="0.5"&nbsp;style="lighting-color:rgb(255,255,255)"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feDistantLight&nbsp;azimuth="135"&nbsp;elevation="60"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/feDiffuseLighting&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feComposite&nbsp;result="litPaint"&nbsp;in="bumpMapDiffuse"&nbsp;operator="arithmetic"&nbsp;k1="1"&nbsp;k2="0"&nbsp;k3="0"&nbsp;k4="0"&nbsp;in2="SourceGraphic"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feSpecularLighting&nbsp;result="bumpMapSpecular"&nbsp;in="blurredAlpha"&nbsp;surfaceScale="5"&nbsp;specularConstant="0.5"&nbsp;specularExponent="10"&nbsp;style="lighting-color:rgb(255,255,255)"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feDistantLight&nbsp;azimuth="135"&nbsp;elevation="60"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/feSpecularLighting&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feComposite&nbsp;result="litPaint"&nbsp;in="litPaint"&nbsp;operator="arithmetic"&nbsp;k1="0"&nbsp;k2="1"&nbsp;k3="1"&nbsp;k4="0"&nbsp;in2="bumpMapSpecular"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feComposite&nbsp;result="litPaint"&nbsp;in="litPaint"&nbsp;operator="in"&nbsp;in2="SourceAlpha"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feMerge&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feMergeNode&nbsp;in="offsetBlurredAlpha"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feMergeNode&nbsp;in="litPaint"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/feMerge&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/filter&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;path&nbsp;d="M233.642&nbsp;288&nbsp;C249.9&nbsp;265.728&nbsp;318&nbsp;231.266&nbsp;318&nbsp;195.613&nbsp;C318&nbsp;133.896&nbsp;247.069&nbsp;148.581&nbsp;232.993&nbsp;172.957&nbsp;C218.041&nbsp;147.832&nbsp;149&nbsp;137.805&nbsp;149&nbsp;195.613&nbsp;C149&nbsp;232.135&nbsp;219.429&nbsp;265.911&nbsp;233.642&nbsp;288&nbsp;z"&nbsp;style="filter:url(#metallic);fill:rgb(255,38,255);stroke:rgb(11,11,13);stroke-width:1;"&nbsp;/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/svg&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>上面的例子的结果如下：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P><BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>下面我们看看渐变效果。渐变效果是指从一种颜色到另一种颜色的平滑过渡。SVG中有两种渐变方式：直线渐变和放射渐变。&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>直线渐变&lt;linearGradient&gt;有水平渐变、垂直渐变和任意角度的渐变三种情况，如果y1、y2的值相同，而x2、x2的值不同，则代表水平渐变；y1、y2不同而x1、x2相同，达标垂直渐变；如果x1、x2，y1、y2都不同，则是角度渐变。颜色可以是两种或多种颜色的组合，每种颜色都要用&lt;stop&gt;标记来指定，它有两个属性：stop-color和stop-opacity，分别表示颜色和透明度。&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;?xml&nbsp;version="1.0"&nbsp;standalone="no"?&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;!DOCTYPE&nbsp;svg&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;SVG&nbsp;1.0//EN"&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>"http：//www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;svg&nbsp;width="100%"&nbsp;height="100%"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;linearGradient&nbsp;id="Linear_Gradient_Test_For_Mengxianhui"&nbsp;x1="0%"&nbsp;y1="100%"&nbsp;x2="0%"&nbsp;y2="0%"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;stop&nbsp;offset="0%"&nbsp;style="stop-color：yellow；stop-opacity：1"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;stop&nbsp;offset="50%"&nbsp;style="stop-color：red；stop-opacity：1"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;stop&nbsp;offset="100%"&nbsp;style="stop-color：blue；stop-opacity：1"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/linearGradient&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;ellipse&nbsp;cx="200"&nbsp;cy="200"&nbsp;rx="80"&nbsp;ry="60"&nbsp;style="fill：url(#Linear_Gradient_Test_For_Mengxianhui)"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/svg&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>上例中&lt;linearGradient&gt;标记定义了一个直线渐变，id属性定义该渐变的唯一标识，x1、y1定义了渐变的开始点坐标，x2、y2定义了渐变的结束点坐标，标记&lt;stop&gt;定义每一种颜色的信息，offset属性渐变色的开始或结束位置。该例子的结果如下：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P><BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>放射渐变由&lt;radialGradient&gt;标记定义，例子如下：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;?xml&nbsp;version="1.0"&nbsp;standalone="no"?&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;!DOCTYPE&nbsp;svg&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;SVG&nbsp;1.0//EN"&nbsp;"<A class=contentlink href='http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' target=_blank><FONT color=#4455aa>http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</FONT></A>&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;svg&nbsp;width="420"&nbsp;height="220"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;radialGradient&nbsp;id="fade-to-black"&nbsp;cx="0%"&nbsp;cy="0%"&nbsp;r="20%"&nbsp;spreadMethod="reflect"&nbsp;gradientUnits="objectBoundingBox"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;stop&nbsp;offset="0%"&nbsp;style="stop-color:#F8C806;stop-opacity:1"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;stop&nbsp;offset="50%"&nbsp;style="stop-color:#000099;stop-opacity:1"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;stop&nbsp;offset="100%"&nbsp;style="stop-color:#458900;stop-opacity:1"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/radialGradient&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;rect&nbsp;x="10"&nbsp;y="10"&nbsp;width="400"&nbsp;height="200"&nbsp;style="fill:url(#fade-to-black);stroke:rgb(0,0,128);&nbsp;stroke-width:0"&nbsp;/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/svg&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>上面的cx，cy代表椭圆的圆心，r及rx，ry代表x方向和y方向的半径，spreadMethod代表平铺的方式，有pad，reflect和repeat三种方式。为了理解个参数的意义，您可以试着改变个参数的值，看看它们是如何控制的。该例子的结果如下：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P><BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>二、在SVG中输出文字&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>在SVG中，文字都被看成是字符数据，所有的文字放到&lt;text&gt;标记中，但允许使用&lt;tspan&gt;标记进行嵌套，文字也是使用x，y属性在浏览器上进行定位的。例如：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;?xml&nbsp;version="1.0"&nbsp;standalone="no"?&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;!DOCTYPE&nbsp;svg&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;SVG&nbsp;1.0//EN"&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>"<A class=contentlink href='http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' target=_blank><FONT color=#4455aa>http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</FONT></A>&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;svg&nbsp;width="100%"&nbsp;height="100%"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;text&nbsp;x="100px"&nbsp;y="120px"&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>style="fill:rgb(0,0,0);font-size:36;font-family:Arial"&gt;WelCome&nbsp;To&nbsp;Mxh's&nbsp;Colorful&nbsp;World!&lt;/text&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;text&nbsp;x="100px"&nbsp;y="160px"&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>style="fill:rgb(255,0,0);font-size:36;font-family:Arial"&gt;<A class=contentlink href="http://lucky.myrice.com!</text>" target=_blank><FONT color=#4455aa>http://lucky.myrice.com!&lt;/text&gt;</FONT></A>&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/svg&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>上面例子的结果如下：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P><BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>SVG中的文字是放在一个不可见的矩形区域里，因此，那个矩形区域内的文字被当成一行来处理，而不是象通常的浏览器那样把文字折行显示，要显示多行文字，就必须使用多个&lt;text&gt;标记。当然，我们也可以对文字使用样式，fill属性定义文字的填充颜色，font-size定义文字的字号大小，font-family属性定义文字的字型，SVG中的文字样式和CSS2中的文字样式一样，也有font-style，font-stretch等属性，Web开发人员对文字的显示有了更多的选择。&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>文字也可以有透明度和图案填充，下面的例子是一个渐变的效果：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;?xml&nbsp;version="1.0"&nbsp;standalone="no"?&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;!DOCTYPE&nbsp;svg&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;SVG&nbsp;1.0//EN"&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>"<A class=contentlink href='http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' target=_blank><FONT color=#4455aa>http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</FONT></A>&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;svg&nbsp;width="100%"&nbsp;height="100%"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;linearGradient&nbsp;id="violet-orange"&nbsp;x1="0%"&nbsp;y1="0%"&nbsp;x2="100%"&nbsp;y2="0%"&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>spreadMethod="pad"&nbsp;gradientUnits="objectBoundingBox"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;stop&nbsp;offset="0%"&nbsp;style="stop-color:rgb(216,192,216);stop-opacity:1"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;stop&nbsp;offset="100%"&nbsp;style="stop-color:rgb(175,23,87);stop-opacity:1"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/linearGradient&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;rect&nbsp;x="49"&nbsp;y="29"&nbsp;width="450"&nbsp;height="41"&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>style="fill:rgb(0,0,0);stroke:none;stroke-width:1"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;text&nbsp;x="70px"&nbsp;y="56px"&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>style="fill:url(#violet-orange);&nbsp;font-size:20;font-weight:bold;font-family:Arial"&gt;Welcome&nbsp;to&nbsp;Meng&nbsp;Xianhui's&nbsp;Colorful&nbsp;World!&lt;/text&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/svg&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>结果如下：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P><BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>此外，文字也可以使用滤镜效果，下面的例子就是显示阴影效果的文字：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;?xml&nbsp;version="1.0"&nbsp;standalone="no"?&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;!DOCTYPE&nbsp;svg&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;SVG&nbsp;1.0//EN"&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>"<A class=contentlink href='http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' target=_blank><FONT color=#4455aa>http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</FONT></A>&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;svg&nbsp;width="100%"&nbsp;height="100%"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;filter&nbsp;id="Drop_Shadow"&nbsp;filterUnits="objectBoundingBox"&nbsp;x="-10%"&nbsp;y="-10%"&nbsp;width="150%"&nbsp;height="150%"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feGaussianBlur&nbsp;in="SourceAlpha"&nbsp;stdDeviation="3"&nbsp;result="blurredAlpha"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feOffset&nbsp;in="blurredAlpha"&nbsp;dx="3"&nbsp;dy="3"&nbsp;result="offsetBlurredAlpha"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feFlood&nbsp;result="flooded"&nbsp;style="flood-color:rgb(99,7,7);flood-opacity:0.65"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feComposite&nbsp;in="flooded"&nbsp;operator="in"&nbsp;in2="offsetBlurredAlpha"&nbsp;result="coloredShadow"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;feComposite&nbsp;in="SourceGraphic"&nbsp;in2="coloredShadow"&nbsp;operator="over"/&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/filter&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/defs&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;text&nbsp;x="126px"&nbsp;y="155px"&nbsp;style="fill:rgb(0,0,0);&nbsp;font-size:30;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>filter:url(#Drop_Shadow)"&gt;Welcome&nbsp;to&nbsp;Meng&nbsp;Xianhui's&nbsp;Colorful&nbsp;World!&lt;/text&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/svg&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>结果如下：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P><BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>SVG中另一个重要的概念就是文字或图像的旋转，SVG中，任何元素都可以进行旋转，下面就是旋转文字的例子：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;?xml&nbsp;version="1.0"&nbsp;standalone="no"?&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;!DOCTYPE&nbsp;svg&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;SVG&nbsp;1.0//EN"&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>"<A class=contentlink href='http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' target=_blank><FONT color=#4455aa>http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</FONT></A>&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;svg&nbsp;width="100%"&nbsp;height="100%"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;g&nbsp;style="color:#000000;font-weight:bold;font-style:normal;font-size:24"&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;text&nbsp;x="18"&nbsp;y="18"&nbsp;transform="translate(7,7)&nbsp;rotate(30)"&gt;Welcome&nbsp;to&nbsp;Meng&nbsp;Xianhui's&nbsp;Colorful&nbsp;World!&lt;/text&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/g&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&lt;/svg&gt;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>上面例子的结果如下：&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P><BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>&nbsp;&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>在上面的例子中使用了&lt;g&gt;标记，这个标记的作用是把里面的其他元素看成是一个完整的组，&nbsp;和SVG中的嵌套相类似，但有一点是不同的，&lt;g&gt;元素允许使用transform属性，这个属性允许我们操纵其他对象的尺寸位置和形状，即可以是静态的，也可以是动态的。因此，如果你想对一个对象做旋转运动，或者做螺旋运动，或者是变形的效果，那么就可以使用transform属性，translate的值描述旋转的圆心坐标，rotate的值描述旋转的角度。&nbsp;<BR>&nbsp;</P>
<P>&nbsp;&nbsp;</P>
<P>要浏览以上例子的结果，你可以把代码拷贝到记事本里，最好是拷贝到XMLSpy里，然后保存为*.svg格式，就可以直接用IE6（IE5能否浏览我没有试验）或SVG&nbsp;Viewer来看到效果了。保存时应该注意编码方式，SVG是基于XML的文档格式，因此，文档结构应当满足XML的格式规范（Well-Formed）的要求。</P></DIV></DIV></TD></TR></TBODY></TABLE><img src ="http://www.cnitblog.com/wjh1025/aggbug/5469.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2005-12-16 18:49 <a href="http://www.cnitblog.com/wjh1025/archive/2005/12/16/5469.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用XSLT生成SVG格式的数据统计图</title><link>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5468.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Fri, 16 Dec 2005 10:45:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5468.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/5468.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5468.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/5468.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/5468.html</trackback:ping><description><![CDATA[<TABLE class=tablebody2 style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" width="90%" border=0>
<TBODY>
<TR>
<TD style="FONT-SIZE: 9pt; LINE-HEIGHT: 12pt" width="100%"><IMG alt=发贴心情 src="http://bbs.xml.org.cn/face/face1.gif" border=0>&nbsp;<B>利用XSLT生成SVG格式的数据统计图[推荐]</B><BR>
<DIV width="100%">
<DIV style="FLOAT: right"></DIV>
<DIV>利用XSLT生成SVG格式的数据统计图 
<P></P>
<P><BR>可升级矢量图象（SVG）是新一代的图象标准，它具有矢量化、符合XML规范、可样式单化、文字可搜索、开放源代码等特性，正在逐渐被世界各大计算机软件厂商所支持。由于SVG图象完全符合XML标准，因此，我们就可以利用XSLT来生成SVG图象。下面，我们就某公司一年中的所有产品的月销售额来看看如何利用XSLT来生成SVG格式的数据统计图。数据统计图的样式非常多，有柱状图、饼图、折线图、三维立体效果图等等，我们这里将介绍簇状柱形图、堆积柱形图和饼图。由于篇幅所限，我们这次仅介绍簇状柱形图，我们会在以后文章中介绍其它两种数据统计图的生成方法。&nbsp;</P>
<P>目前，没有一个浏览器完全支持SVG图象的显示，为了能够看到本例子中效果，您必须安装SVG&nbsp;Viewer&nbsp;3.0插件，下载地址：<A class=contentlink href="http://www.adobe.com/svg/viewer/install/main.html" target=_blank><FONT color=#4455aa>http://www.adobe.com/svg/viewer/install/main.html</FONT></A>。在Windows&nbsp;XP平台上，自带了Microsoft&nbsp;Internet&nbsp;Explorer&nbsp;6，但是它是Adobe&nbsp;SVG&nbsp;Viewer&nbsp;2.0的插件，对中文的支持不好，但可以直接浏览没有中文文字的SVG图象，把本例中的中文换成英文，也可以浏览本例中的代码。我们的例子在支持UTF-16的平台上可以很好地显示，我们就以中文为例。&nbsp;</P>
<P>首先，我们准备所需要的数据，格式是XML的。由于目前许多大型数据库都提供了对XML查询结果的支持，因此，您可以直接利用数据库来生成XML数据文件，也可以经过查询，再用编写组件的方法来生成需要的XML数据文件。我们的XML数据文件Data.xml格式如下：&nbsp;</P>
<P></P>
<P>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;&nbsp;</P>
<P>&lt;sales_summary&gt;&nbsp;</P>
<P>&lt;Month_sales&nbsp;Month_no="1"&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_INTEL_001"&nbsp;quantity="5"&nbsp;<I>value</I>="5000.00"/&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_INTEL_002"&nbsp;quantity="10"&nbsp;<I>value</I>="1500.00"/&gt;&nbsp;</P>
<P>&lt;/Month_sales&gt;&nbsp;</P>
<P>&lt;Month_sales&nbsp;Month_no="2"&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_INTEL_001"&nbsp;quantity="4"&nbsp;<I>value</I>="4000.00"/&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_INTEL_002"&nbsp;quantity="10"&nbsp;<I>value</I>="3000.00"/&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_AMD_001"&nbsp;quantity="20"&nbsp;<I>value</I>="1500.00"/&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_AMD_002"&nbsp;quantity="20"&nbsp;<I>value</I>="1800.00"/&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_DIGITAL_001"&nbsp;quantity="11"&nbsp;<I>value</I>="50.00"/&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_DIGITAL_002"&nbsp;quantity="18"&nbsp;<I>value</I>="600.00"/&gt;&nbsp;</P>
<P>&lt;/Month_sales&gt;&nbsp;</P>
<P>&lt;!--&nbsp;限于篇幅所限，我们这里省略了3月份到11月份的数据，如果浏览时，请自行添加上，格式同前&nbsp;--&gt;&nbsp;</P>
<P>&lt;Month_sales&nbsp;Month_no="12"&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_INTEL_001"&nbsp;quantity="56"&nbsp;<I>value</I>="200.00"/&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_INTEL_002"&nbsp;quantity="10"&nbsp;<I>value</I>="500.00"/&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_AMD_001"&nbsp;quantity="61"&nbsp;<I>value</I>="1500.00"/&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_AMD_002"&nbsp;quantity="8"&nbsp;<I>value</I>="2100.00"/&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_DIGITAL_001"&nbsp;quantity="2"&nbsp;<I>value</I>="500.00"/&gt;&nbsp;</P>
<P>&lt;product_sales&nbsp;product_id="PC_DIGITAL_002"&nbsp;quantity="6"&nbsp;<I>value</I>="1200.00"/&gt;&nbsp;</P>
<P>&lt;/Month_sales&gt;&nbsp;</P>
<P>&lt;/sales_summary&gt;&nbsp;</P>
<P></P>
<P>下面，我们看看最关键的XSLT部分，由于在这里用到了XSLT，请把您的MsXML2文件升级到最新的MsXML3.0&nbsp;SP2或MsXML4.0，可以到微软的网站下载：<A class=contentlink href="http://www.microsoft.com/xml/" target=_blank><FONT color=#4455aa>http://www.microsoft.com/xml/</FONT></A>。文中每一代码段都进行了注释说明。XSLTToGraph.xsl：&nbsp;</P>
<P></P>
<P>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;&nbsp;</P>
<P>&lt;xsl:stylesheet&nbsp;version="1.0"</P>
<P>xmlns:xsl="<A class=contentlink href='http://www.w3.org/1999/XSL/Transform">' target=_blank><FONT color=#4455aa>http://www.w3.org/1999/XSL/Transform"&gt;</FONT></A>&nbsp;</P>
<P>&lt;!--&nbsp;定义XSLT转换后输出的文件的格式，这里输出为XML格式的文件内容&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:output&nbsp;method="xml"&nbsp;indent="yes"&nbsp;encoding="UTF-8"&nbsp;version="1.0"&nbsp;standalone="no"&nbsp;media-type="image/svg+xml"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;以下定义全局变量&nbsp;--&gt;&nbsp;</P>
<P>&lt;!--&nbsp;柱状图每个柱的宽度&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="bar_width"&nbsp;select="number(80)"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;每个柱之间的间隔&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="bar_spacing"&nbsp;select="number(10)"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;图象高度&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="graph_height"&nbsp;select="number(500)"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;图象的左边界&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="left_margin"&nbsp;select="number(100)"/&gt;&nbsp;</P>
<P></P>
<P>&lt;xsl:template&nbsp;match="/"&gt;&nbsp;</P>
<P>&lt;!--&nbsp;SVG的主体部分开始&nbsp;--&gt;&nbsp;</P>
<P>&lt;svg&nbsp;id="body"&nbsp;viewBox="0&nbsp;0&nbsp;-100&nbsp;{$graph_height&nbsp;+&nbsp;100}"&gt;&nbsp;</P>
<P>&lt;!--&nbsp;下面的代码实现鼠标的<I>onMouse</I>Over和<I>onMouse</I>Out事件执行的代码，显示或隐藏当月的销售额&nbsp;--&gt;&nbsp;</P>
<P>&lt;script&nbsp;type="text/ECMAScript"&gt;&lt;![CDATA[&nbsp;</P>
<P>function&nbsp;On_MouseOver(evt,HideShow_ID){&nbsp;</P>
<P>//&nbsp;得到目标对象&nbsp;</P>
<P>var&nbsp;target&nbsp;=&nbsp;evt.getTarget();&nbsp;</P>
<P>var&nbsp;doc&nbsp;=&nbsp;target.getOwnerdocument．);</P>
<P>var&nbsp;HideShow&nbsp;=&nbsp;doc.getElementById(HideShow_ID);&nbsp;</P>
<P>HideShow.setAttribute('style',&nbsp;'visibility:visible');&nbsp;</P>
<P>}&nbsp;</P>
<P>function&nbsp;On_MouseOut(evt,HideShow_ID){&nbsp;</P>
<P>var&nbsp;target&nbsp;=&nbsp;evt.getTarget();&nbsp;</P>
<P>var&nbsp;doc&nbsp;=&nbsp;target.getOwnerdocument．);&nbsp;</P>
<P>var&nbsp;HideShow&nbsp;=&nbsp;doc.getElementById(HideShow_ID);&nbsp;</P>
<P>HideShow.setAttribute('style',&nbsp;'visibility:hidden');&nbsp;</P>
<P>}&nbsp;</P>
<P>]]&gt;&lt;/script&gt;&nbsp;</P>
<P>&lt;title&gt;月销售纪录&lt;/title&gt;&nbsp;</P>
<P>&lt;!--&nbsp;柱状图的主体部分&nbsp;--&gt;&nbsp;</P>
<P>&lt;g&nbsp;id="barChart"&nbsp;transform="translate(10,&nbsp;10)"&nbsp;fill-rule="nonzero"&nbsp;clip-rule="nonzero"&nbsp;stroke="none"&nbsp;class="legend"&nbsp;</P>
<P>stroke-width="1"&nbsp;stroke-linecap="square"&nbsp;stroke-miterlimit="1"&nbsp;style="text-anchor:start"&nbsp;shape-rendering="crispEdges"&gt;&nbsp;</P>
<P>&lt;!--&nbsp;应用数据模板&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:apply-templates&nbsp;select="sales_summary"/&gt;&nbsp;</P>
<P>&lt;text&nbsp;text-anchor="middle"&nbsp;transform="matrix(2&nbsp;0&nbsp;0&nbsp;2&nbsp;{$left_margin&nbsp;+&nbsp;150}&nbsp;{$graph_height&nbsp;+&nbsp;70})"&gt;某公司每月产品销售纪录&lt;/text&gt;&nbsp;</P>
<P>&lt;/g&gt;&nbsp;</P>
<P>&lt;/svg&gt;&nbsp;</P>
<P>&lt;/xsl:template&gt;&nbsp;</P>
<P></P>
<P>&lt;!--&nbsp;数据模板开始&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:template&nbsp;match="sales_summary"&gt;&nbsp;</P>
<P>&lt;!--&nbsp;计算月数&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="weeks_count"&nbsp;select="count(Month_sales)"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;计算月最大的销售额&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="max_week_sales_<I>value</I>"&gt;&nbsp;</P>
<P>&lt;xsl:for-each&nbsp;select="Month_sales"&gt;&nbsp;</P>
<P>&lt;xsl:sort&nbsp;select="sum(product_sales/@<I>value</I>)"&nbsp;data-type="number"&nbsp;order="descending"/&gt;&nbsp;</P>
<P>&lt;xsl:if&nbsp;test="position()&nbsp;=&nbsp;1"&gt;&nbsp;</P>
<P>&lt;xsl:<I>value</I>-of&nbsp;select="sum(product_sales/@<I>value</I>)"/&gt;&nbsp;</P>
<P>&lt;/xsl:if&gt;&nbsp;</P>
<P>&lt;/xsl:for-each&gt;&nbsp;</P>
<P>&lt;/xsl:variable&gt;&nbsp;</P>
<P>&lt;!--&nbsp;柱状图相对高度，圆整为100&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="max_graph_height"&nbsp;select="floor(($max_week_sales_<I>value</I>&nbsp;+&nbsp;99)&nbsp;div&nbsp;100)&nbsp;*&nbsp;100"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;调用模板，画出柱状图的背景及图例文字和边框线&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:call-template&nbsp;name="draw_graph"&gt;&nbsp;</P>
<P>&lt;xsl:with-param&nbsp;name="max_graph_height"&nbsp;select="$max_graph_height"/&gt;&nbsp;</P>
<P>&lt;xsl:with-param&nbsp;name="bar_count"&nbsp;select="$weeks_count"/&gt;&nbsp;</P>
<P>&lt;/xsl:call-template&gt;&nbsp;</P>
<P>&lt;!--&nbsp;调用模板，画出柱状图及图例文字&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:apply-templates&nbsp;select="Month_sales"&gt;&nbsp;</P>
<P>&lt;xsl:sort&nbsp;select="@Month_no"&nbsp;data-type="number"/&gt;&nbsp;</P>
<P>&lt;xsl:with-param&nbsp;name="max_graph_height"&nbsp;select="$max_graph_height"/&gt;&nbsp;</P>
<P>&lt;/xsl:apply-templates&gt;&nbsp;</P>
<P>&lt;/xsl:template&gt;&nbsp;</P>
<P></P>
<P>&lt;xsl:template&nbsp;name="draw_graph"&gt;&nbsp;</P>
<P>&lt;xsl:param&nbsp;name="max_graph_height"/&gt;&nbsp;</P>
<P>&lt;xsl:param&nbsp;name="bar_count"/&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="actual_width"&nbsp;select="($bar_count&nbsp;*&nbsp;($bar_width&nbsp;+&nbsp;$bar_spacing))&nbsp;+&nbsp;$bar_spacing"/&gt;&nbsp;</P>
<P>&lt;g&nbsp;id="GridAndLegend"&nbsp;style="stroke:#00FF00;"&nbsp;shape-rendering="crispEdges"&nbsp;stroke-width="1"&gt;&nbsp;</P>
<P>&lt;!--&nbsp;画出背景颜色和边框线&nbsp;--&gt;&nbsp;</P>
<P>&lt;path&nbsp;fill="rgb(255,&nbsp;235,&nbsp;205)"&nbsp;stroke="#000099"&nbsp;d="M&nbsp;{$left_margin},{$graph_height&nbsp;+&nbsp;20}&nbsp;h{$actual_width}&nbsp;v-{$graph_height&nbsp;+&nbsp;10}&nbsp;h-{$actual_width}&nbsp;v{$graph_height&nbsp;+10}"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;画出原点和水平线&nbsp;--&gt;&nbsp;</P>
<P>&lt;path&nbsp;fill="none"&nbsp;stroke="#FF0000"&nbsp;d="M&nbsp;{$left_margin&nbsp;-&nbsp;10},{$graph_height&nbsp;+&nbsp;20}&nbsp;h10"/&gt;&nbsp;</P>
<P>&lt;text&nbsp;text-anchor="end"&nbsp;baseline-shift="-3"&nbsp;transform="matrix(1&nbsp;0&nbsp;0&nbsp;1&nbsp;{$left_margin&nbsp;-&nbsp;15}&nbsp;{$graph_height&nbsp;+&nbsp;20})"&gt;0&lt;/text&gt;&nbsp;</P>
<P>&lt;!--&nbsp;画出垂直线和图例文字&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:call-template&nbsp;name="draw_graph_vertical_legends"&gt;&nbsp;</P>
<P>&lt;xsl:with-param&nbsp;name="max"&nbsp;select="$max_graph_height"/&gt;&nbsp;</P>
<P>&lt;xsl:with-param&nbsp;name="legend_threshold"&nbsp;select="$max_graph_height&nbsp;div&nbsp;$graph_height"/&gt;&nbsp;</P>
<P>&lt;xsl:with-param&nbsp;name="actual_width"&nbsp;select="$actual_width"/&gt;&nbsp;</P>
<P>&lt;/xsl:call-template&gt;&nbsp;</P>
<P>&lt;/g&gt;&nbsp;</P>
<P>&lt;/xsl:template&gt;&nbsp;</P>
<P></P>
<P>&lt;!--&nbsp;递归调用的模板，画出垂直线和图例说明&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:template&nbsp;name="draw_graph_vertical_legends"&gt;&nbsp;</P>
<P>&lt;xsl:param&nbsp;name="max"/&gt;&nbsp;</P>
<P>&lt;xsl:param&nbsp;name="legend_threshold"/&gt;&nbsp;</P>
<P>&lt;xsl:param&nbsp;name="actual_width"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;开始数字和步长&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:param&nbsp;name="start"&nbsp;select="number(100)"/&gt;&nbsp;</P>
<P>&lt;xsl:param&nbsp;name="step"&nbsp;select="number(100)"/&gt;&nbsp;</P>
<P>&lt;xsl:param&nbsp;name="prev_marked_start"&nbsp;select="number(0)"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;计算垂直位置&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="prev_vert_posn"&nbsp;select="($prev_marked_start&nbsp;div&nbsp;$max)&nbsp;*&nbsp;$graph_height"/&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="vert_posn"&nbsp;select="($start&nbsp;div&nbsp;$max)&nbsp;*&nbsp;$graph_height"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;计算本水平线和上一条水平线的间距&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="new_marked_start"&gt;&nbsp;</P>
<P>&lt;xsl:choose&gt;&nbsp;</P>
<P>&lt;xsl:when&nbsp;test="($vert_posn&nbsp;-&nbsp;$prev_vert_posn)&nbsp;&gt;=&nbsp;$legend_threshold"&gt;&nbsp;</P>
<P>&lt;xsl:<I>value</I>-of&nbsp;select="$start"/&gt;&nbsp;</P>
<P>&lt;/xsl:when&gt;&nbsp;</P>
<P>&lt;xsl:otherwise&gt;&nbsp;</P>
<P>&lt;xsl:<I>value</I>-of&nbsp;select="$prev_marked_start"/&gt;&nbsp;</P>
<P>&lt;/xsl:otherwise&gt;&nbsp;</P>
<P>&lt;/xsl:choose&gt;&nbsp;</P>
<P>&lt;/xsl:variable&gt;&nbsp;</P>
<P>&lt;!--&nbsp;画出间距不小于一个单位的水平线和图例说明文字&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:if&nbsp;test="$new_marked_start&nbsp;=&nbsp;$start"&gt;&nbsp;</P>
<P>&lt;path&nbsp;fill="none"&nbsp;stroke="#FF0000"&nbsp;d="M&nbsp;{$left_margin&nbsp;-&nbsp;10},{$graph_height&nbsp;+&nbsp;20&nbsp;-&nbsp;floor($vert_posn)}&nbsp;h{$actual_width&nbsp;+&nbsp;10}"/&gt;&nbsp;</P>
<P>&lt;text&nbsp;text-anchor="end"&nbsp;baseline-shift="-3"&nbsp;transform="matrix(1&nbsp;0&nbsp;0&nbsp;1&nbsp;{$left_margin&nbsp;-&nbsp;15}&nbsp;{$graph_height&nbsp;+&nbsp;20&nbsp;-&nbsp;floor($vert_posn)})"&gt;&nbsp;</P>
<P>&lt;xsl:<I>value</I>-of&nbsp;select="$start"/&gt;&nbsp;</P>
<P>&lt;/text&gt;&nbsp;</P>
<P>&lt;/xsl:if&gt;&nbsp;</P>
<P>&lt;!--&nbsp;如果没有到达最大值，递归调用本模板&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:if&nbsp;test="$start&nbsp;&lt;&nbsp;$max"&gt;&nbsp;</P>
<P>&lt;xsl:call-template&nbsp;name="draw_graph_vertical_legends"&gt;&nbsp;</P>
<P>&lt;xsl:with-param&nbsp;name="max"&nbsp;select="$max"/&gt;&nbsp;</P>
<P>&lt;xsl:with-param&nbsp;name="legend_threshold"&nbsp;select="$legend_threshold"/&gt;&nbsp;</P>
<P>&lt;xsl:with-param&nbsp;name="actual_width"&nbsp;select="$actual_width"/&gt;&nbsp;</P>
<P>&lt;xsl:with-param&nbsp;name="start"&nbsp;select="$start&nbsp;+&nbsp;$step"/&gt;&nbsp;</P>
<P>&lt;xsl:with-param&nbsp;name="step"&nbsp;select="$step"/&gt;&nbsp;</P>
<P>&lt;xsl:with-param&nbsp;name="prev_marked_start"&nbsp;select="$new_marked_start"/&gt;&nbsp;</P>
<P>&lt;/xsl:call-template&gt;&nbsp;</P>
<P>&lt;/xsl:if&gt;&nbsp;</P>
<P>&lt;/xsl:template&gt;&nbsp;</P>
<P></P>
<P>&lt;!--&nbsp;画出每月的销售纪录图&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:template&nbsp;match="Month_sales"&gt;&nbsp;</P>
<P>&lt;xsl:param&nbsp;name="max_graph_height"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;画出每月的销售额柱状图，以下三个变量分别代表：当月销售总额、柱的高度、柱的左边坐标位置&nbsp;--&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="sales_<I>value</I>"&nbsp;select="sum(product_sales/@<I>value</I>)"/&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="bar_height"&nbsp;select="floor(($sales_<I>value</I>&nbsp;div&nbsp;$max_graph_height)&nbsp;*&nbsp;$graph_height)"/&gt;&nbsp;</P>
<P>&lt;xsl:variable&nbsp;name="bar_left"&nbsp;select="((position()&nbsp;-&nbsp;1)&nbsp;*&nbsp;($bar_width&nbsp;+&nbsp;$bar_spacing))&nbsp;+&nbsp;$bar_spacing"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;画出柱，并且添加鼠标事件执行的函数&nbsp;--&gt;&nbsp;</P>
<P>&lt;path&nbsp;fill="#0066FF"&nbsp;stroke="none"&nbsp;d="M&nbsp;{$bar_left&nbsp;+&nbsp;$left_margin},{$graph_height&nbsp;+&nbsp;19}&nbsp;h{$bar_width}&nbsp;v-{$bar_height}&nbsp;h-{$bar_width}&nbsp;v{$bar_height}"&nbsp;</P>
<P><I>onmouse</I>over="On_MouseOver(evt,'HideShow_{@Month_no}')"&nbsp;<I>onmouse</I>out="On_MouseOut(evt,'HideShow_{@Month_no}')"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;画出图示说明&nbsp;--&gt;&nbsp;</P>
<P>&lt;text&nbsp;text-anchor="middle"&nbsp;transform="matrix(1.5&nbsp;0&nbsp;0&nbsp;1.5&nbsp;{$left_margin&nbsp;+&nbsp;$bar_left&nbsp;+&nbsp;($bar_width&nbsp;div&nbsp;2)}&nbsp;{$graph_height&nbsp;+&nbsp;40})"&gt;&nbsp;</P>
<P>&lt;xsl:<I>value</I>-of&nbsp;select="@Month_no"/&gt;&nbsp;</P>
<P>&lt;xsl:text&gt;月&lt;/xsl:text&gt;&nbsp;</P>
<P>&lt;/text&gt;&nbsp;</P>
<P>&lt;!--&nbsp;创建鼠标移出时的图样,包括直线和文字&nbsp;--&gt;&nbsp;</P>
<P>&lt;g&nbsp;id="HideShow_{@Month_no}"&nbsp;style="visibility:&nbsp;hidden;"&gt;&nbsp;</P>
<P>&lt;!--&nbsp;画出水平线&nbsp;--&gt;&nbsp;</P>
<P>&lt;path&nbsp;fill="none"&nbsp;stroke="red"&nbsp;d="M&nbsp;{$left_margin&nbsp;-&nbsp;10},{$graph_height&nbsp;+&nbsp;20&nbsp;-&nbsp;$bar_height}&nbsp;h{$bar_left&nbsp;+&nbsp;10}"/&gt;&nbsp;</P>
<P>&lt;!--&nbsp;写出文字（销售额），并进行格式化&nbsp;--&gt;&nbsp;</P>
<P>&lt;text&nbsp;transform="matrix(1&nbsp;0&nbsp;0&nbsp;1&nbsp;{$left_margin&nbsp;+&nbsp;$bar_left&nbsp;+&nbsp;2}&nbsp;{($graph_height&nbsp;+&nbsp;30)&nbsp;-&nbsp;$bar_height})"&gt;&nbsp;</P>
<P>&lt;xsl:<I>value</I>-of&nbsp;select="format-number($sales_<I>value</I>,'#,##0')"/&gt;&nbsp;</P>
<P>&lt;/text&gt;&nbsp;</P>
<P>&lt;/g&gt;&nbsp;</P>
<P>&lt;/xsl:template&gt;&nbsp;</P>
<P>&lt;/xsl:stylesheet&gt;&nbsp;</P>
<P></P>
<P>最后，要在页面中看到SVG格式的统计图，有两种办法：一是直接在客户端转换，在Data.xml使用XSL样式单即可；二是利用ASP在服务器端先进行转换，再输出到客户端。我们这里采用ASP来完成，因为，如果有多种统计图样式的话，这样可以让用户进行选择显示，调用不同的XSL文件即可。DataToSVG.asp文件如下：&nbsp;</P>
<P></P>
<P>&lt;%@&nbsp;Language="VBScript"%&gt;&nbsp;</P>
<P>&lt;Meta&nbsp;Name="Author"&nbsp;Content="lht"&gt;&nbsp;</P>
<P>&lt;Meta&nbsp;Name="WebSite"&nbsp;Content="<A class=contentlink href='http://free.cnyys.com/my/freebird/index.asp">' target=_blank><FONT color=#4455aa>http://free.cnyys.com/my/freebird/index.asp"&gt;</FONT></A>&nbsp;</P>
<P>&lt;Meta&nbsp;Name="WebSite"&nbsp;Content="<A class=contentlink href='http://www.yahoo.com.cn">/' target=_blank><FONT color=#4455aa>http://www.yahoo.com.cn"&gt;</FONT></A>&nbsp;</P>
<P>&lt;Meta&nbsp;Name="CopyRight"&nbsp;Content"&gt;&nbsp;</P>
<P>&lt;%&nbsp;</P>
<P>Response.Clear&nbsp;</P>
<P>Response.Buffer&nbsp;=&nbsp;True&nbsp;</P>
<P>Dim&nbsp;xmlDom,&nbsp;xslDom,&nbsp;strResult&nbsp;</P>
<P>Set&nbsp;xmlDom&nbsp;=&nbsp;Server.CreateObject("Msxml2.DOMdocument．quot;)&nbsp;</P>
<P>Set&nbsp;xslDom&nbsp;=&nbsp;Server.CreateObject("Msxml2.FreeThreadedDOMdocument．quot;)&nbsp;</P>
<P>xmlDom.async&nbsp;=&nbsp;False&nbsp;</P>
<P>xslDom.async&nbsp;=&nbsp;False&nbsp;</P>
<P></P>
<P>xmlDom.load&nbsp;Server.MapPath("Data.xml")&nbsp;</P>
<P>xslDom.load&nbsp;Server.MapPath("XSLTToGraph.xsl")&nbsp;</P>
<P>Response.ContentType&nbsp;=&nbsp;"image/svg+xml"&nbsp;</P>
<P></P>
<P>strResult&nbsp;=&nbsp;xmlDom.transformNode(xslDom)&nbsp;</P>
<P>'&nbsp;在不支持UTF-16编码的饿平台上，替换成UTF-8&nbsp;</P>
<P>strResult&nbsp;=&nbsp;Replace(strResult,"UTF-16","UTF-8")&nbsp;</P>
<P>Response.Write&nbsp;strResult&nbsp;</P>
<P>%&gt;</P></DIV></DIV></TD></TR></TBODY></TABLE><img src ="http://www.cnitblog.com/wjh1025/aggbug/5468.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2005-12-16 18:45 <a href="http://www.cnitblog.com/wjh1025/archive/2005/12/16/5468.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>把SVG图加入到HTML文档</title><link>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5467.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Fri, 16 Dec 2005 10:42:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5467.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/5467.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5467.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/5467.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/5467.html</trackback:ping><description><![CDATA[1、<BR>&lt;body&gt;<BR>&nbsp;&nbsp;&lt;h2&nbsp;style="text-align:&nbsp;center"&gt;SVG&nbsp;Demonstration&lt;/h2&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;p&gt;A&nbsp;page&nbsp;may&nbsp;have&nbsp;other&nbsp;code&nbsp;besides&nbsp;the&nbsp;SVG&nbsp;image.&lt;/p&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;object&nbsp;type="image/svg+xml"&nbsp;data="MySVG.svg"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width="300"&nbsp;height="200"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;img&nbsp;src="NonSVG.gif"&nbsp;alt="SVG&nbsp;图像的静态版本"&nbsp;/&gt;<BR>&nbsp;&nbsp;&lt;/object&gt;<BR>&nbsp;&nbsp;&lt;p&gt;Using&nbsp;objects&nbsp;allows&nbsp;the&nbsp;browser&nbsp;to&nbsp;decide&nbsp;what&nbsp;to&nbsp;display.&lt;/p&gt;<BR>&nbsp;&nbsp;&lt;/body&gt;<BR>2、<BR>
<DIV>&lt;embed&nbsp;width="640"&nbsp;height="560"&nbsp;type="image/svg-xml"&nbsp;id="svgmapctrl"<BR>pluginspage="<A class=contentlink href='http://www.adobe.com/svg/viewer/install/"' target=_blank><FONT color=#4455aa>http://www.adobe.com/svg/viewer/install/"</FONT></A>&nbsp;src="default.svg"&nbsp;&gt;&lt;/embed&gt;<BR></DIV><img src ="http://www.cnitblog.com/wjh1025/aggbug/5467.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2005-12-16 18:42 <a href="http://www.cnitblog.com/wjh1025/archive/2005/12/16/5467.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>获取动态数据显示的柱形图</title><link>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5463.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Fri, 16 Dec 2005 10:15:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5463.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/5463.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2005/12/16/5463.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/5463.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/5463.html</trackback:ping><description><![CDATA[<DIV><STRONG>获取动态数据显示的柱形图<BR></STRONG>
<DIV width="100%">
<DIV style="FLOAT: right"><STRONG></STRONG></DIV>
<DIV>你们可以看看效果如何，点击柱形还可以改变颜色。<BR>我现在做的系统是VC++编码的，我的这段svg代码也是VC++生成的，我这里的动态数据是随机获得的，但我们的系统要求根据系统中指定的动态变量显示柱形图，我不知道如何使<I>javascript</I>与我的系统通讯获得系统中的动态数据变量，大家出出主意吧！<BR>&lt;?xml&nbsp;version="1.0"&nbsp;standalone="no"?&gt;<BR>&lt;!DOCTYPE&nbsp;svg&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;SVG&nbsp;1.0//EN"&nbsp;<BR>&nbsp;&nbsp;"<A class=contentlink href='http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' target=_blank><FONT color=#4455aa>http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt;</FONT></A><BR>&lt;svg&nbsp;width="1000"&nbsp;height="1000"&nbsp;xmlns="<A class=contentlink href='http://www.w3.org/2000/svg"' target=_blank><FONT color=#4455aa>http://www.w3.org/2000/svg"</FONT></A><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xlink="<A class=contentlink href='http://www.w3.org/1999/xlink"' target=_blank><FONT color=#4455aa>http://www.w3.org/1999/xlink"</FONT></A>&nbsp;onload="setheight()"&gt;<BR>&lt;script&nbsp;type="text/<I>javascript</I>"&gt;<BR>&lt;![CDATA[<BR>&nbsp;&nbsp;var&nbsp;svgRoot=document.documentElement;<BR>&nbsp;&nbsp;var&nbsp;redVal=0;<BR>&nbsp;&nbsp;var&nbsp;greenVal=0;<BR>&nbsp;&nbsp;var&nbsp;blueVal=0;<BR>&nbsp;&nbsp;function&nbsp;&nbsp;setColor(evt)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;target=evt.getTarget();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redVal=Math.round(Math.random()*255);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;greenVal=Math.round(Math.random()*255);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blueVal=Math.round(Math.random()*255);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.setAttribute("fill","rgb("+redVal+","+greenVal+","+blueVal+")");<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;function&nbsp;&nbsp;setheight()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;rect1,long,long1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rect1=svgRoot.getElementById("rect1");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long=Math.round(Math.random()*200);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rect1.setAttribute("height",long);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rect1.setAttribute("y",600-long);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout("setheight()",1000);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>//]]&gt;<BR>&lt;/script&gt;<BR>&lt;g&gt;<BR>&nbsp;&lt;line&nbsp;x1="100"&nbsp;y1="100"&nbsp;x2="100"&nbsp;y2="600"&nbsp;stroke="rgb(0,0,0)"/&gt;<BR>&nbsp;&lt;line&nbsp;x1="100"&nbsp;y1="600"&nbsp;x2="600"&nbsp;y2="600"&nbsp;stroke="rgb(0,0,0)"/&gt;<BR>&nbsp;&lt;line&nbsp;x1="100"&nbsp;y1="350"&nbsp;x2="600"&nbsp;y2="350"&nbsp;/&gt;<BR>&nbsp;&lt;line&nbsp;x1="100"&nbsp;y1="100"&nbsp;x2="600"&nbsp;y2="100"&nbsp;/&gt;<BR>&nbsp;&lt;text&nbsp;x="98"&nbsp;y="105"&nbsp;text-anchor="end"&gt;&nbsp;1000&nbsp;&lt;/text&gt;<BR>&nbsp;&lt;text&nbsp;x="98"&nbsp;y="355"&nbsp;text-anchor="end"&gt;&nbsp;&nbsp;500&nbsp;&lt;/text&gt;<BR>&nbsp;&lt;rect&nbsp;id="rect1"&nbsp;x="105"&nbsp;y="400"&nbsp;height="200"&nbsp;width="40"&nbsp;<I>onclick</I>="setColor(evt)"/&gt;<BR>&nbsp;&lt;rect&nbsp;x="150"&nbsp;y="200"&nbsp;height="400"&nbsp;width="40"&nbsp;<I>onclick</I>="setColor(evt)"/&gt;<BR>&nbsp;&lt;rect&nbsp;x="195"&nbsp;y="300"&nbsp;height="300"&nbsp;width="40"&nbsp;<I>onclick</I>="setColor(evt)"/&gt;<BR>&nbsp;&lt;rect&nbsp;x="240"&nbsp;y="100"&nbsp;height="500"&nbsp;width="40"&nbsp;<I>onclick</I>="setColor(evt)"/&gt;<BR>&nbsp;&lt;rect&nbsp;x="285"&nbsp;y="120"&nbsp;height="480"&nbsp;width="40"&nbsp;<I>onclick</I>="setColor(evt)"/&gt;<BR>&nbsp;&lt;rect&nbsp;x="330"&nbsp;y="500"&nbsp;height="100"&nbsp;width="40"&nbsp;<I>onclick</I>="setColor(evt)"/&gt;<BR>&nbsp;&lt;rect&nbsp;x="375"&nbsp;y="440"&nbsp;height="160"&nbsp;width="40"&nbsp;<I>onclick</I>="setColor(evt)"/&gt;<BR>&nbsp;&lt;defs&gt;<BR>&nbsp;&lt;polyline&nbsp;id="polyline"&nbsp;points="97,107&nbsp;100,100&nbsp;103,107"/&gt;<BR>&nbsp;&lt;/defs&gt;<BR>&nbsp;&lt;use&nbsp;xlink:href="#polyline"/&gt;<BR>&nbsp;&lt;use&nbsp;xlink:href="#polyline"&nbsp;transform="translate(700,500)&nbsp;rotate(90)"/&gt;<BR>&lt;/g&gt;<BR>&lt;/svg&gt;<BR>
<DIV>如果数据与服务器同一台机，可以将数据存成XML，使用getURL()载入，parseXML()读出。 
<P></P>
<P>var&nbsp;svgdoc&nbsp;=&nbsp;""<BR>function&nbsp;get_url(evt){<BR>&nbsp;svgdoc&nbsp;=&nbsp;evt.target.ownerDocument<BR>&nbsp;getURL("test.xml",callback)<BR>}<BR>function&nbsp;callback(data){<BR>&nbsp;if&nbsp;(data.success){<BR>&nbsp;&nbsp;new_node&nbsp;=&nbsp;parseXML(data.content,svgdoc)<BR>&nbsp;&nbsp;//...<BR>&nbsp;}<BR>}<BR></P></DIV>
<BLOCKQUOTE></BLOCKQUOTE><BR></DIV></DIV></DIV><img src ="http://www.cnitblog.com/wjh1025/aggbug/5463.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2005-12-16 18:15 <a href="http://www.cnitblog.com/wjh1025/archive/2005/12/16/5463.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>回来了！</title><link>http://www.cnitblog.com/wjh1025/archive/2005/11/06/4021.html</link><dc:creator>WJH</dc:creator><author>WJH</author><pubDate>Sun, 06 Nov 2005 07:35:00 GMT</pubDate><guid>http://www.cnitblog.com/wjh1025/archive/2005/11/06/4021.html</guid><wfw:comment>http://www.cnitblog.com/wjh1025/comments/4021.html</wfw:comment><comments>http://www.cnitblog.com/wjh1025/archive/2005/11/06/4021.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/wjh1025/comments/commentRss/4021.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/wjh1025/services/trackbacks/4021.html</trackback:ping><description><![CDATA[今天终于从南京回来了，哈哈，考的爽啊！<IMG height=20 src="http://www.cnitblog.com/Emoticons/hitwall.gif" width=25 border=0><img src ="http://www.cnitblog.com/wjh1025/aggbug/4021.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/wjh1025/" target="_blank">WJH</a> 2005-11-06 15:35 <a href="http://www.cnitblog.com/wjh1025/archive/2005/11/06/4021.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>