利用word 2007发布wordpress博客(图解)

一直传闻说可以用word2007发布wordpress博客,于是今天兴趣使然,由于本人使用的office 2007 pro的!所以省去专门安装office套件的麻烦,直接可以使用word编辑好文章。然后进入发布wordpress过程:

1.点击word2007最左上角的office按钮,选择发布选项,并从弹出菜单中选择博客选项;

2.在弹出窗口中选择立即注册选项;

3.在弹出窗口中的博客提供商里面选择wordpress;

4.在新建wordpress窗口中填写博客的地址,用户名和密码;

xmlrpc这要在wordpress里面的设置“发布”里面开通这个功能(wordpress默认是关闭的)

5.把文章标题填上,并且你可以选择直接发布,或者发布为草稿;

这样:整个用word发布博客wordpress已经完成,整体感觉比在后台方便……毕竟一个专业文档处理工具,一个只是后台发布心系统,至于上手的话,个人感觉还是需要点时间的!但是功能上还是对网络支持不是最好,最好有专业的插件支持。

 

通过wmo分析H25小萨DPS差距

与wmo中排名靠前的两位大侠相比,纳兰雪琪有橙斧目前跃居第一,常年排名靠前的weweni和我一样也是277的吸血斧。 从数据上看 我的天鬼伤害和他们相比问题很大,其他数据因为装备和他们有一定差距几乎可以忽略不计。 这周我会尝试采用背身释放的方式看看是否能有提升。

多公会,相同Boss,相同职业的角色比较

天灾打击

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 246,987 33 8.7% 33 7,484 42.4%
风动心静 291,541 37 10.2% 36 8,098 54.0% 2.7%
納蘭雪琪 364,547 43 12.2% 43 8,477 51.1%

凋零缠绕

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 246,247 37 8.7% 37 6,655 32.4% 5.1%
风动心静 240,176 36 8.4% 36 6,671 33.3% 5.1%
納蘭雪琪 212,493 36 7.1% 36 5,902 30.5% 5.2%

黑锋石像鬼:石像鬼打击

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 204,660 30 7.2% 30 6,822 6.6% 5.7%
风动心静 101,293 18 3.5% 18 5,627 3.9%
納蘭雪琪 242,066 43 8.1% 43 5,629 6.9% 4.1%

冰霜疫病

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 182,440 110 6.4% 110 1,658 5.1%
风动心静 189,831 115 6.6% 115 1,650 4.5%
納蘭雪琪 171,036 120 5.7% 120 1,425 4.7%

鲜血打击

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 147,582 39 5.2% 39 3,784 33.3%
风动心静 153,826 43 5.4% 42 3,662 30.2% 2.3%
納蘭雪琪 148,937 33 4.9% 33 4,513 48.4%

血之疫病

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 142,170 110 5.0% 110 1,292 7.9%
风动心静 159,556 116 5.6% 116 1,375 5.9%
納蘭雪琪 158,030 120 5.2% 120 1,316 5.2%

天灾之击

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 122,478 32 4.3% 32 3,827 5.9%
风动心静 146,069 36 5.1% 36 4,057 6.6%
納蘭雪琪 185,834 43 6.2% 43 4,321 5.0%

游荡疫病

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 121,587 97 4.3% 97 1,253 7.9%
风动心静 111,142 96 3.9% 96 1,157 5.5%
納蘭雪琪 82,948 67 2.7% 67 1,238 7.7%

骨疽

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 110,347 110 3.9% 110 1,003 7.0%
风动心静 113,495 119 4.0% 119 953 6.1%
納蘭雪琪 136,650 111 4.5% 111 1,231 6.0%

吸取生命

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 101,508 25 3.6% 25 4,060 5.1%
风动心静 85,260 21 3.0% 21 4,060 5.1%

腐臭掠夺者:爪击

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 91,189 55 3.2% 54 1,688 12.7% 1.8%
风动心静 91,126 61 3.2% 61 1,493 13.1%
納蘭雪琪 91,187 55 3.0% 55 1,657 9.0%

浸血打击

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 79,832 32 2.8% 32 2,494
风动心静 74,565 31 2.6% 31 2,405
納蘭雪琪 90,786 32 3.0% 32 2,837

冰冷触摸

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 50,376 11 1.7% 11 4,579 36.3% 3.3%
风动心静 45,500 12 1.6% 12 3,791 25% 6.0%
納蘭雪琪 4,951 1 0.1% 1 4,951 100%

暗影打击

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 45,294 11 1.6% 11 4,117 27.2%
风动心静 53,359 12 1.8% 12 4,446 41.6%
納蘭雪琪 2,117 1 0.0% 1 2,117

邪恶虫群

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 21,873 173 0.7% 173 126 5.4%
风动心静 20,401 193 0.7% 193 105 6.1%
納蘭雪琪 17,094 189 0.5% 189 90 6.8%

萨隆邪铁炸弹

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
Weweni 6,231 5 0.2% 5 1,246 8.0%
納蘭雪琪 7,109 13 0.2% 13 546 13.9%

森罗万象

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
納蘭雪琪 29,275 29 0.9% 29 1,009 3.5%

枯萎凋零

伤害输出
玩家名称 总伤害量 次数 百分比 直接 平均 爆击 DOT 平均 爆击 未击中 免伤
納蘭雪琪 4,695 3 0.1% 3 1,565 66.6% 1.8%

WORDPRESS 分类图标插件——CATEGORY ICONS

选用图片来识别不同分类,效果总比采用文字的好,难道不是吗~~

Category Icons就是这么一款插件,只要你调用分类函数,就会自动输出你所设置的分类图片。你也可以在想要显示分类图片的地方,输入代码来实现调用。同时一个分类可以设置好几个图片,可以在选定地方调用大图标或小图标。插件自带了中文,可以在WordPress中直接搜索安装

在后台可以设置你所想选用的各个分类的不同图标。

插件作者的主页,国内似乎上不去,但试了一下用代理还是可以上的。

插件主要有两个基本调用函数:put_cat_icons() 和 get_cat_icon()。

1. put_cat_icons()

这个函数可以让你的sidebar实现分类图标化。

put_cat_icons(list [,get_cat_icon_parameters])

其中list : 指wp_list_categories() 这个函数。

Example :

例如在sidebar栏你可以如下这么写,可以在分类旁输出你选定的图片,记住一定要添加“echo=0”。

如果你加上‘icons_only=true’,则只有显示分类图片而不显示分类名称。

2. get_cat_icon()

这个函数可以在任何位置调用你选定的分类图片。

type, [default_value], parameter_name_to_use : description.

  • string, align : align attribute for the image tag.
  • boolean, border : If true the border will be displayed. If false, it’ll not. (Don’t use this if you want valid Strict XHTML)
  • int, [current_category], cat : Category ID. If not specified, the current category is used or the current post’s category.
  • string, class : Class attribute for the image tag.
  • boolean, [true], echo : If true the html code will be ‘echoed’. If no, it’ll be returned.
  • boolean, [false], expand : Whether the image should be expanded to fit the rectangle specified by fit_xxx.
  • int, [-1], fit_height : Maximum height (or desired height if $expanded=true) of the image.
  • int, [-1], fit_width : Maximum width (or desired width if $expanded=true) of the image.
  • boolean, [false], hierarchical : If true, the icons are displayed in hierarchical order (horizontally).
  • boolean, [true], link : If true the image is made a hyperlink (wrapped by anchor tag).
  • int, [3], max_icons : Maximum number of icons to display
  • string, prefix : String to echo before the image tag. If no image, no output.
  • boolean, [true], small : Use the small icon.
  • string, suffix : String to echo after the image tag. Ignored if no image found.
  • boolean, [false], use_priority : If true, only the most prioritized icon will be displayed.
  • boolean, [false], vertical_display : Display the icons vertically.

Examples

在你想调用的地方输入以下代码:

<?php get_cat_icon(); ?>

如果调用方式如上,则表示调用分类小图标,长宽分别为32px和20px,图片css类别名为”myicons”。从而你可以在”myicons”中设定图片显示位置。

如:

.myicons {
margin : 0 3px 0px 0;
}

如果调用方式如下,则表明在这里调用分类ID号为“5”的图片,长宽分别为100px和100px,如果图片偏小则自动拉大。

<?php get_cat_icon(‘cat=5&fit_width=100&height=100&expand=true’); ?>

插件作者主页:http://www.category-icons.com,需用代理访问。

 

在HotNews pro中使用Category Icons插件的分类图标

最近WordPress建了下博客,在折腾遍官网上所有主题之后,还是选择了国人开发的HotNews pro,布局样式更适合自己口味呢。

唯一的缺陷就是HotNews pro分类图标要根据类别的别名来命名通过ftp上传,不太方便后期维护和管理这些图标。很多人应该都有用过分类图标插件,英文名称Category Icons,提供很方便的分类图标管理和调用的函数。Category Icons的使用方法这里不介绍了,请参阅WORDPRESS 分类图标插件——CATEGORY ICONS

如何在HotNews pro(热点新闻)主题中使用分类图标插件呢?

  1. 打开HotNews pro主题中的cat_ico.php,它的路径应该是/wp-content/themes/HotNewspro/includes/cat_ico.php
  2. 将原始代码
<?php if (get_option('swt_ico') == 'Display') { ?>
	<div class="cat_ico">
		<?php
			foreach((get_the_category()) as $cat)
			{
			$catname =$cat->category_nicename;
			$cattitle=$cat->cat_name;
			echo "<a href=/category/";
			echo $catname;
			echo "/>";
			echo "<img src=/wp-content/caticon/";
			echo $catname;
			echo ".gif alt=\"$catname category \" title=\"$cattitle\" /></a>\n";
			}
		?>
	</div>
<?php { echo ''; } ?>
<?php } else { } ?>

替换成:

<?php if (get_option('swt_ico') == 'Display') { ?>
	<div class="cat_ico">
		<?php
			if (function_exists('get_cat_icon'))
			{
				get_cat_icon('class=cat_ico');
			}
			else
			{
				foreach((get_the_category()) as $cat)
				{
				$catname =$cat->category_nicename;
				$cattitle=$cat->cat_name;
				echo "<a href=/category/";
				echo $catname;
				echo "/>";
				echo "<img src=/wp-content/caticon/";
				echo $catname;
				echo ".gif alt=\"$catname category \" title=\"$cattitle\" /></a>\n";
				}
			}
		?>
	</div>
<?php { echo ''; } ?>
<?php } else { } ?>

 

完成之后在主题设置中只要分类图标中设置了分类图标Display并且安装了Category Icons插件,那么就会显示Category Icons的分类图标;如果没有安装Category Icons插件,就会显示热点新闻主题自带的分类图标了!

分类
操作系统 软件应用

四种方法完美在硬盘安装Windows7

Windows 7硬盘安装方法大全介绍了Windows 7下安装高版本的Windows 7,Vista下硬盘安装Windows 7,xp下硬盘安装Windows7等方法!


一、windows 7系统下全新安装高版Windows7:
1、下载windows7 7057 ISO镜像(RC或RTM),用虚拟光驱拷贝至非C盘(如D:\7057)
2、开机按F8——修复系统——选择最后一项命令修复——在命令框输入“D:\7057\sources\setup.exe“(不带引号)
3、进入安装界面、选择custom安装
4、选择安装语言、格式化C盘
5、OK了,装好后是一个纯系统(非双系统)。


二、如果有vista安装盘的话,方法也很简单:
1、下载windows7 7057 ISO镜像(RC或RTM),用虚拟光驱拷贝至非C盘(如D:\7057)
2、BIOS中选择光驱启动,进入vista安装界面
3、选择左下角修复计算机(自动搜索系统,提示加载驱动或关闭,选择关闭进入修复选项)
4、选择最后一项命令修复,在命令框输入“D:\7057\sources\setup.exe“(不带引号),开始安装
5、选择安装语言、格式化C盘 (即使C盘原本没有系统此法也可行)

三、XP系统下全新安装windows 7
1、下载windows 7 7057ISO镜像(RC或RTM),用虚拟光驱拷贝至非C盘(如D:\7057)
2、把D:\7057目录下的bootmgr和boot目录(其实只要里面的boot.sdi和bcd文件)拷贝到c盘根目录下,并在C盘根目录下建个sources文件夹。(XP下不需要取得管理员权限)
3、把D:\7057\sources下的boot.win复制到C盘刚建的sources文件夹
4、用管理员身份运行cmd,然后输入c:\boot\bootsect.exe/nt60 c: 提示successful(即成功了!)
5、关闭cmd窗口重启计算机,自动进入安装界面,选择安装语言,同时选择适合自己的时间和货币显示种类及键盘和输入方式
6、出现“开始安装界面”,(要注意了,不点击“现在安装”)点左下角“修复计算机”(repair mycomputer),进入”系统恢复选择”,选择最后一项”命令提示符”(commandprompt),进入DOS窗口
7、输入“D:\7057\sources\setup.exe“(不带引号),开始安装
8、选择安装语言、格式化C盘,就OK了

 


四、vista系统下全新安装windows7(实践证明XP用此种方法也更加方便):
1、下载windows 7 7057ISO镜像(RC或RTM),用虚拟光驱拷贝至非C盘(如D:\7057)
2、复制D:\7057文件夹中的Boot、EFI、sources文件夹和bootmgr至C盘根目录下
3、复制D:\7057\boot下Bootsect.exe至C盘根目录下
第2部需取得管理员权限
4、管理员身份运行cmd,输入c:\bootsect.exe/nt60 c:并回车(最好复制,中间有空格)
5、重启系统自动进入安装界面,点左下角的修复计算机repair my computer)
6、选择最后一项命令提示符,进入DOS窗口,输入D:\7057\sources\setup.exe进入安装界面
7、选择安装语言、格式化C盘,就OK了

 

[3.3.5PVE]死亡骑士DPS输出循环综述

对于DK的各类PVE DPS输出天赋、打法和循环,NGA实际上已经有了很多分类帖子

然而,新手DK的各种求精华,伸手,争议,讨论乃至吐槽仍旧有如滔滔江水,绵绵不绝

故在此特意花费时间,继续整理和拿出对于ICC实战的各类DK输出的打法的综述,希望借此抛砖引玉,使更多的新老DK玩家受益。

作者:红魔归来

邪冰0/17/54双手

标准天赋配点:[ 0/17/54 ]

标准雕文:食尸鬼、冰触、黑死

单体打法循环:

起手式 冰結之触-瘟疫打击-血魄打击-天谴打击-血魄打击,石像鬼,强力符文武器

循环式:冰結之触-瘟疫打击-血魄打击-天谴打击-血魄打击,死亡缠绕-凛冬号角,天谴打击-血魄打击-天谴打击-血魄打击,死亡缠绕-死亡缠绕

AOE循环:沒有起手式,死亡凋零-冰触-瘟疫-传染,死亡缠绕,沸血術-天谴打击-天谴打击-沸血術,死亡缠绕

细节问题:

1.加速药水开场就喝,不要帶不灭药水

2.注意保持开场骨盾和战斗过程中空闲时间骨盾的维持

3.宝宝不要死,战斗过程中嗜血结束后继续喝加速药水(这里要解释下,一般而言天鬼开场即开,如果硬要等到第二个天鬼才吃加速不一定适合短时间战斗,嗜血结束喝加速可以让DPS曲线更为平稳,保持近战的高速率输出伤害水平,当然时间足够开两次天鬼者,第二次天鬼前才喝加速,对于DPS输出而言,我建议邪冰输出的曲线尽可能平稳,换句话说,尽可能用药水来弥补既无大招又无饰品又无团队BUFF下的输出阶段)

4.合剂和食物方面建议吃无尽怒气合剂,40力量40耐的食物,如果命中精准没达标就40命中/精准的食物,直接鮮魚宴也不是不能接受

综合说明:

邪冰17/54对于3.3.3版本DK而言,是实用性最强,最适用于各类ICC单体与AOE交替场合的双手武器打法。

目前ICC內,大部分邪DK由邪血转入邪冰的理由主要在于邪冰双手的无尽凛冬4%力量属性的提升,近战加速对白字、乃至骨疽凝血和宝宝的提升以及特效武器的伤害提升,此外还包括了黑冰对于AOE的提升,相比之下,邪血天赋更适合作为邪系输出中侧重单体输出的打法存在,且建议至少点出邪系57点出秽聚的标准天谴循环。血系天赋的大部分提升仍旧集中在对于天谴打击的个体技能的提升,因此对于邪血而言,出秽聚后的3天谴循环更为合适。

从变化上而言,邪冰17/54目前的变种主要集中在以下几个方面:

1.邪冰17/54,出亵渎1点,少挽歌1点,这是针对巫妖王的点法,甚至可以改为出亵渎2点,出挽歌1点,出黑瘟2点,这样的打法下,亵渎可以对于各种小怪和BOSS随从怪起到缓速作用,尤其适合25LK对于华尔琪的战斗中减速,配合血魄雕文对于受亵渎以及对BOSS的团队战斗中可以起到缓速的技能如暗牧的精神鞭挞等而言,DK的单体输出可以考虑冰触雕文換血魄雕文,对于DPS有约200的提升,冰触雕文目前看来是一个广泛普适的适合冰邪AOE和单体略有提升的百搭雕文,而血魄雕文略显极端希冀提升受缓速影响的目标的单体DPS

2.邪冰17/54,出病态1点,少挽歌1点,这是针对复杂AOE场合的点法,甚至可以改为出病态2点,出挽歌1点,黑瘟2点,AOE能力由于死亡凋零CD减少加强,而单体输出也由于每次WMO伤害比例占8-10%的死缠的加强而提升

3.将黑瘟的3点拿出来点到血系覆灭上的1/17/53,2/17/52,3/17/51…….客观而言,这的确有助于提升输出水平,但是作为DK,无论是邪系DK还是其他各系DK对于团队BUFF都有自己应尽的义务,不论25人还是10人ICC,如果你想得到队友的尊重,请你尽量不要拿走黑瘟或者任何其他团队BUFF性质的天赋点数来强化自己的单体输出,切记!

4.对于BOSS的魔法伤害大到RL不得不让你去洗出反魔法力场的场合(理论上说,仅存在于初步开荒H传销女和H冰龙的团队,实际也没有太大用),可以建议团内至少有一个其他DK洗邪系确保黑瘟存在的情况下,拿出黑瘟3点和挽歌1点,点出反魔法力场和其前置点一共四点天赋。

最后需要说明的是:

无论是吸血斧,还是墓穴錘,还是影锋,目前的ICC各类BOSS场合正常发挥下,邪冰的表现都要好过于邪血,区别是吸血斧和橙斧更能发挥邪冰近战比例较大的优势,触发更多特效导致更多的伤害获取。

邪冰双手DK的最佳饰品组合为277意志+258抉择(当然这也是所有DK的一致首选,即为BIS),次选为双死亡抉择,“我个人认为:264意志对于邪冰而言不如245抉择,因为264所提供的破甲的意义小于双死亡带来的至善覆盖率”,对于新手而言,牌子饰品很适合邪冰双手DK使用。

装备配装以纯力量向为主,在确保命中情况下无脑20力量,只有在自身散件和套装均达到264+277后,逐步开始融入急速,但不建议以宝石来牺牲力量增加急速属性

熟练要求维持26左右,可以略低于26,但是不要低于23,命中维持260左右即可,可以考虑达到283维持法系17%命中为佳

分类
Web前端

Ext常用属性、方法小结

一、Ext

1.1  Ext.isEmpty(v, allowBlank)  //是否为空[链接]

1.2  Ext.isArray(v)     //是否为数组集合

1.3  Ext.isPrimitive(v)    //是否是基本数据类型String/Number/Boolean

1.4  Ext.isFunction(v)    //是否是函数

1.5  Ext.isNumber(v)     //是否是数字

1.6  Ext.isString(v)    //是否是字符串

1.7  Ext.isBoolean(v)   //是否是bool值

1.8  Ext.isIE/isIE6/isIE7/isIE8…  //判断浏览器

1.9  Ext.isWindows/isLinux/isMac/isAir  //判断平台(操作系统)

1.10  Ext.isDefined    //对象是否已经定义

1.11  Ext.id(el,prefix)  //返回唯一的id值,el位元素Id,prefix为前缀

1.12  Ext.urlEncode(o, pre)  //将JSON数据转换URL参数串,如{a:1,b:2} => a=1&b=2

1.13  Ext.urlDecode(string, overwrite)  //将url参数列表转换成json格式数据,overwrite如果为true,则后面的同名参数值覆盖前面的同名参数值(默认为false即不覆盖而以数组形式返回)

1.15  Ext.each(array, fn, scope)  //遍历数组,例:Ext.each([1,2,3],function(value,index,a){ //index:索引号,0开始  value:当前值 a:数组引用 });

1.16  Ext.encode(o)    //将对象转换成json字符串,详细说明和用法:这里

1.17  Ext.decode(o)    //将json字符串转换成对象

[Ext-more.js]

1.18  Ext.combine()  //数组合并

1.19  Ext.num(value,defaultValue)  //如果是数字,直接返回本身,否则返回默认值,注意”5″这里也会返回默认值的

1.20  Ext.copyTo(dest, source, names)  //拷贝source中names属性列表至dest中

1.21  Ext.unique(arr)   //剔除数组中重复的元素,让数组每个元素保持唯一

1.22  Ext.clean(arr)     //复制数组?!

1.23  Ext.flatten(arr)   //将多维数组转换成一维数组

1.24  Ext.min(arr, comp)  //查找数组中最小的元素

1.25  Ext.max(arr, comp)  //查找数组中最大的元素

1.26  Ext.mean(arr)     //计算数组元素平均值(总和除以个数)

1.27  Ext.partition(arr, truth)  //根据arr元素的bool值拆分成新的二维数组并返回 例1:Ext.partition([true, false, true, true, false]); // [[true, true, true], [false, false]] 例2:Ext.partition(arr,function(val){ return val == “class1” });

1.28  Ext.invoke(arr, methodName,/*args…*/)  //执行arr数组中对象的methodName方法,args为方法的参数,返回执行结果数组

1.29  Ext.pluck(arr, prop)  //返回数组中属性名(property name)等于prop的值的新数组 Ext.pluck(arr, “className”); => [arr1.className,arr2.className]

1.30  Ext.zip({Arrays|NodeLists},{Function}) //压缩多个数组为一个数组, Ext.zip([1,2,3],[4,5,6]); // [[1,4],[2,5],[3,6]],支持Function自定义合并

1.31  Ext.type(object)  //返回对象的类型:string,number,boolean,function,object,array,regexp,element,nodelist,textnode,whitespace

二、Ext.util.Format

2.1  Ext.util.Format.capitalize(value);  //首字母大写
2.2  Ext.util.Format.ellipsis(value, len, word);   //从字符串开始处截取len长度显示,超过部分用…表示;word为布尔值,为true时在前面截取的基础上再从’ ‘、’.’、’!’、’?’关键字处截取前面(len),ellipsis(“abcde.fghijkl”,10,true)返回abcde
2.3  Ext.util.Format.htmlEncode(value);   //HTML编码,将& <  >  “替换为&amp;&lt;&gt;&quot;
2.4  Ext.util.Format.htmlDecode(value);   //HTML解码,与上面相反
2.5  Ext.util.Format.trim(value);       //截取字符串左右的空格
2.6  Ext.util.Format.substr(value, start, length);   //从value指定的start位置开始截取length长度的子串返回
2.7  Ext.util.Format.lowercase(value);        //转换大写
2.8  Ext.util.Format.uppercase(value);       //转换小写
2.9  Ext.util.Format.stripTags(v);          //去除HTML标签:/<\/?[^>]+>/gi
2.10  Ext.util.Format.usMoney(v);       //转换到’$’符号的货币形式
2.11  Ext.util.Format.date(v, format);    //格式化日期输出,format默认格式”m/d/Y”
2.12  Ext.util.Format.round(value, precision);  //四舍五入,precision指精确位数
2.13  Ext.util.Format.number(v, format);    //格式化数字显示
2.14  Ext.util.Format.nl2br(value);     //将字符串中的’\n’替换成'<br />’
2.15  Ext.util.Format.fileSize(value);    //将字节数转成更大的单位KB和MB显示,fileSize(1024) = 1KB
2.16  Ext.util.Format.defaultValue(value, defaultValue);  //如果value未定义或为空字符串则返回defaultValue
2.17  Ext.util.Format.stripScripts(v);   //去除脚本标签
2.18  Ext.util.Format.undef(value);    //如果value未定义,返回空字符串,反之返回value本身

 

三、扩展JS原有对象

3.1  String

3.1.1  .format(format)  //和C#里面是一样的用法

3.1.2  .toggle(value, other)  //交换值,如果当前值等于value,则被赋值other

3.2  Array

3.2.1  .indexOf(o)  //返回元素o在数组ArrayObject中的位置,找不到返回-1

3.2.2  .remove(o)  //从数组ArrayObject删除元素o

3.3  Function

3.3.1  .createInterceptor(fcn, scope)  //创建阻断方法,如果fcn返回false,原方法将不会被执行,参见这里

3.3.2  .createCallback(/*args…*/)   //创建回调,以无参的函数作为参数,但是现有的方法已经具有了参数,如果直接写上可以用这个来创建一个回调,类似于function(){ //实际的带参调用 } ,见这里1这里2

3.3.3  .createDelegate(obj, args, appendArgs) //创建委托,与上面相比,自己可以访问obj中的属性和方法,见这里

3.3.4  .defer(millis, obj, args, appendArgs)  //定时执行,隔millis毫秒后执行原方法,参见这里

3.3.5  .createSequence(fcn, scope)    //Ext-more.js中,创建组合方法,执行原方法+fcn,参见这里

 

四、 其他

4.1  表单

4.1.1  一次取得表单所有的表单元素key/value集合

form1.form.getValues()  //form1为Ext.FormPanel,例如:

//注意
var conn = new Ext.data.Connection();
conn.request({
url: 'submit.aspx?method=Submit4',
//此处与params对应,如果为POST,则服务器端从Request.Form中可以取得到数据,反之从QueryString中取数据
method: 'POST',//GET
params:form1.form.getValues(),
success: function(response, opts) {
MsgInfo(response.responseText);
}
});

form1.form.setValues(values)     //form1.form.setValues({id:1,name:’aabbcc’}) 赋值

4.1.2  表单元素取值赋值一次取得

4.1.2.1  form1.form.findField(‘TextBox’).getValue()

4.1.2.2  form1.form.getValues().TextBox

4.1.2.3  form1.form.getFieldValues().TextBox

4.2  切换皮肤

Ext.util.CSS.swapStyleSheet(“theme”, “resources/css/ext/xtheme-orange.css”);    //注意路径

 

邪DK输出百科全书

翻译自EJ,原文地址
http://elitistjerks.com/f72/t72364-unholy_dps_3_3_5_king_anything/ ]
目录

  • 1 缩写
  • 2 为什么邪恶?
  • 3 天赋
  • 3.1通用天赋
  • 3.2可选天赋
  • 4 雕文
  • 5 通用输出循环
  • 5.1单体循环
  • 5.2多目标/AoE循环
  • 6 装备和属性权重
  • 6.1属性权重
  • 6.2套装属性
  • 6.3最佳装备
  • 6.4饰品
  • 6.5魔印
  • 7 宝石和附魔
  • 7.1宝石
  • 7.1.1何时使用黄、橙色宝石
  • 7.1.2多彩宝石
  • 7.2附魔
  • 7.3武器符文铸造
  • 8 耗材和CD技能
  • 8.1耗材
  • 8.2CD技能
  • 8.2.1召唤大军
  • 8.2.2召唤石像鬼
  • 9 基础战斗数据
  • 10 食尸鬼的特殊数据
  • 11 团队副本
  • 12 专业
  • 13 常见问题
  • 14 邪恶天赋常用宏
  • 15 有价值的资源


为什么选择邪恶?

为什么选择邪恶 …

邪恶天赋的显著优势包括:
1.超强的持续AoE输出

超强的持续AoE输出 …

2.超强的团队增益

超强的持续AoE输出 …

3.超强的生存能力

超强的生存能力 …

 

作者的废话 …

天赋
3.3以后冰天赋树有巨大变化,下面列出三种天赋,根据装备的等级,由低到高。这几种天赋在同等装备下的输出差距很小。有些可能轻微牺牲了输出而获得一些无法量化的团队提升。
邪血天赋不出收割 17/0/54

邪血天赋不出收割 17/0/54 …

邪冰天赋不出收割 0/17/54

邪冰天赋不出收割 0/17/54 …

邪血天赋出收割 14/0/57

邪血天赋出收割 14/0/57 …

可选天赋
虽然前面的3个天赋中都没有多余的天赋点,但仍然可以从黑暗定罪(最弱的单体伤害天赋)或者骨疽(最弱的多目标输出天赋)中省下几点,使dps损失最小。多余点数可以加到有用的替换天赋中。
1.食尸鬼狂暴-如果宠物死亡,会减少输出,30秒时间的真空外加复活后宠物无buff,如果你的宠物不会死,就没有必点这个天赋,这个天赋肯定会减少dps
2.强化邪恶光环-有些人认为为了额外的速度值得点这两点天赋,收益多少是根据不同战斗而定,虽好是自己尝试一下,看看能否注意到不同,是否值得2点天赋。
3.病态-现在不用纠结于单体和AoE天赋的不同了,这两种天赋的唯一区别是病态。病态对单体输出是绝对有负面影响的,而在AoE中的价值是无法估量的。所以如果你没有奢侈到出两套输出天赋应对单体和群体AoE,那么只要看看在当前常见的战斗中使用凋零的间隔为每15秒一个。

雕文
大雕文

单体:
黑暗死亡雕文
食尸鬼雕文
冰冷触摸雕文 

多目标/AoE:
黑暗死亡雕文
疾病雕文
冰冷触摸雕文

小雕文

传染雕文
召唤宠物雕文
随意

 

雕文 …

通用循环
单体目标
有收割的天赋

暗影打击-冰冷触摸-血魄打击-血魄打击-天灾打击-死亡缠绕-寒冬号角
天灾打击-死亡缠绕-天灾打击-天灾打击-死亡缠绕-(死亡缠绕)

不出收割的天赋

暗影打击-冰冷触摸-血魄打击-天灾打击-血魄打击-死亡缠绕-寒冬号角
天灾打击-血魄打击-天灾打击-血魄打击-死亡缠绕-死亡缠绕-(死亡缠绕)

循环内最后一个死亡缠绕打括号是因为,两个循环内并不总是有符能打这个死缠。
由于传染雕文被取代,邪dk又回到了传统经典循环。

群体目标/AoE循环

初始:暗影打击,冰冷触摸,传染,死亡凋零-死亡缠绕-寒冬号角
后续:
天灾打击-血魄打击-血沸-天灾打击-死亡缠绕-死亡缠绕
天灾打击-传染-死亡凋零-死亡缠绕-寒冬号角

 

AoE循环说明 …

装备和属性权重
属性权重
基本上来说:
邪血天赋:命中>力量>破甲>急速>=暴击>精准>敏捷
邪冰天赋:命中>力量>急速>破甲>暴击>专精>敏破甲捷。

属性权重 …

除了这些,其他属性点的权重基本不变。根据上面这些特性,可以得到现在的邪dk属性权重表:

下表中的属性权重是基于T10套装,血天赋采用议会锤,冰天赋采用吸血斧:

属性 邪血 264物品 邪血277物品 邪冰264物品 邪冰277物品 邪冰橙斧
武器DPS 7.71 7.75 6.96 7.04 7.43
武器速度32.86 40.85 28.99 32.39 35.14
物理命中 3.59 3.64 3.55 3.43 3.70
力量 2.94 2.96 3.11 3.10 3.11
急速 2.06 2.13 2.75 2.87 2.97
破甲 2.57 2.85 2.29 2.58 2.87
暴击 1.94 2.00 1.91 2.00 2.11
专精 1.58 1.63 1.49 1.52 1.97
敏捷 1.34 1.35 1.28 1.35 1.41
法术命中 0.52 0.55 0.65 0.58 0.63 

属性 邪血 264物品 邪血277物品 邪冰264物品 邪冰277物品 邪冰橙斧
AP 0.70 DPS 0.71 DPS 0.69 DPS 0.71 DPS 0.74 DPS
DPS 1.43 AP 1.41 AP 1.45 AP 1.41 AP 1.35 AP

套装属性加成
下表是套装特效的平均dps加成,可以看到,T10对于邪恶天赋的加成是难以置信地(当然血/冰也是),越快凑齐套装属性越好,赶快用它换掉可笑的为了3.22设计的T9套吧。

套装 邪血 264物品 邪血277物品 邪冰264物品 邪冰277物品 邪冰橙斧
4 T9 375.76 410.29 381.82 419.12 461.97
4T10 398.45 423.53 386.36 411.76 428.17
2T10 336.32 358.82 218.82 232.31 232.15
4 T8 259.09 276.47 210.61 223.53 243.66
4 T7 216.21 227.94 190.91 211.27 214.27
2 T9 120.59 120.73 168.18 167.65 164.79
2 T8 94.97 95.58 98.48 101.47 102.82
2 T7 139.38 139.71 93.94 101.47 108.45

最好的装备:
略,参见[ http://elitistjerks.com/f72/t72364-unholy_dps_3_3_5_king_anything/ ]

饰品:
略,参见[ http://nga.178.com/read.php?tid=3266245&_ff=320&page=1 ]

魔印:
30个冰霜牌子的吊死人魔印或25个凯旋牌子的恶意魔印。前者产时间战斗效果好一些,后者爆发性战斗好些。两者的差距不会超过10%。

魔印选择 …

如果两个魔印都没有,知晓魔印第三,复仇之心魔印远随其后第四。

附魔和宝石
宝石
简单来说,满足命中要求之后,插宝石就是所有空格插20力量和10力量10急速,如何选择上述两种宝石,下面会提及。

宝石 …

多彩宝石

多彩宝石 …

附魔

附魔 …

武器符文铸造
没得选:堕落十字军。

药水耗材
合剂:无尽狂怒合剂
药水:邪冰:速度药水
邪血:不灭药水
食物:40耐40力
宠物食物:五香猛犸宴
在战斗之前喝一瓶不灭(提供97AP两分钟)或加速药水,战斗中还能喝一瓶。

冷却技能
对于邪dk,只有两个冷却大技能:召唤大军和召唤石像鬼。良好使用上述技能能极大挖掘dps。

召唤大军

召唤大军 …

召唤石像鬼

召唤石像鬼 …

一些战斗的基本数据

  • 偏斜(只在boss战存在)概率为24%,只作用于普通攻击,偏斜不能产生暴击,只能造成70%普通伤害。
  • boss战中,你需要263命中等级(8%)来达到双手武器的物理完全命中,有德莱尼的情况下,减少到231命中等级(7%)
  • 对boss,法术命中上限是445命中等级(17%),有鹌鹑/暗牧和命中天赋的情况下,需要289命中等级(11%),如果队里有德莱尼,则减少到262%命中等级(10%)。法术命中影响的技能有:死亡缠绕,冰冷触摸,死亡凋零,传染,血沸。
  • 你需要26专精等级(6.5%)来避免boss背面的躲闪。
  • 所有物理攻击在boss战中损失4.8%暴击率
  • 所有物理攻击在boss战中损失3%暴击率食尸鬼的专门数据
  • 食尸鬼是邪dk最大的伤害来源之一,有些基础数据你得了解。
  • 食尸鬼像大多数永久宠物一样,受到你自身属性和团队Buff的影响。
  • 骑士在buff团队内潜行者的时候,你的石像鬼也会受到buff,如果团队内没有潜行者,则需要单独对食尸鬼buff。
  • 插了食尸鬼雕文后,食尸鬼的力量=331+1.52x主人的力量。
  • 食尸鬼继承主人100%的急速。
  • 两点死者之夜天赋减少石像鬼承受的90%物理魔法AoE伤害。
  • 食尸鬼的命中率继承主人但是只取整数位,所以如果你有7.99%的物理命中率,食尸鬼只有7%命中。
  • 食尸鬼的精准取决于主人的命中率,131命中(4%)下,食尸鬼有13精准,263命中(8%)时,食尸鬼有26精准。德莱尼光环增加的命中不能对食尸鬼起作用。
  • 食尸鬼享受邪脸15%的急速加成,但不享受血脸15%的伤害加成。
    专业
    工程第一,珠宝第二,锻造第三,剥皮第四,附魔,制皮,铭文,炼金并列第五,裁缝第六,挖矿采药垫底。 

    常见问题问答:
    最常见的问题:我该用血脸还是邪脸,为啥血脸更好。
    由于邪恶公共cd不是很紧,邪领域减少gcd的特性没有意义,可能仅在某些特定boss(教授处理软泥)有用。

    血脸增加15%伤害的特性大概能增加12.75%的输出(食尸鬼,石像鬼,大军不受加成)
    邪脸增加15%的急速大概增加7.5%输出(影响自动攻击,骨疽,吸血斧特效,宠物攻速)。

    不但如此,天灾打击受血领域15%伤害加成的双重加成。

    双重加成?我听到很多人说到天灾打击的双重加成,但从来没有人解释这是什么意思。
    简单来说:一个天赋或者buff能加强天灾打击两次,那么增益数值就比字面的解释大,这就是双重加成。

    具体来说:新的天灾打击分为两部分,第一部分为物理攻击,另一部分为暗影伤害:暗影伤害数值取决于物理伤害数值。也就是说,任何增加物理伤害的buff,debuff,天赋,属性都会增加暗影伤害的数值。这是一次加成。然而,有些buff在增加天灾打击的物理伤害同时,也会直接影响天灾的暗影伤害部分。血领域就是这样一种buff,它在增加天灾的物理部分15%的同时,也会增加暗影伤害15%,两者叠加就增加了暗影伤害32.25%(1.15*1.15-1=0.3225%)。所以血领域对天灾打击的加成大于15%。

    骨盾,荒芜,双手武器专精,血领域,凶猛灵感,圣神补偿等buff/天赋都可以产生双重加成。

    Cool,那么这是否可以解释为什么天灾打击的暗影伤害部分大于物理部分的36%
    是的,如果考虑到所有前面提到的buff/天赋产生的双重加成效应,你会发现暗影伤害最终能占到物理伤害的53.2%(邪血)或56.2%(邪冰)。

    说到天灾打击,我的天灾打击伤害已经大于两个血魄打击了,不过我还没有2件T10,是不是说明我可以出收割天赋了?
    没错,在3.3以后,除非装备不好,否则天灾打击基本上总是比两个血魄打击的总和高了。不过,如果没有2件T10,还不能点收割,应为这点收益还不足以让收割的三点天赋值回票价。

    考虑到机会成本,你不能只盯着三点收割天赋的收益,同时要考虑到其他天赋上损失的三点,只能从黑暗定罪,刀锋护甲,骨疽,无尽寒冬这几个天赋中扣除。所以要收回其他天赋上的损失,你的天灾打击伤害要比两个血魄打击高足够的数值才行,这在你获得至少2件T10、264武器和其他大量ICC散件之前是办不到的。

    你之前提到过boss会对法术有部分抵抗,能不能通过插法术穿透宝石来减免抵抗?
    不行,boss总是有部分魔法抵抗(减伤),不论法术穿透怎样,这都是无法避免的,你只能接受它。

    未命中和躲闪都可以完全避免吗?命中和精准是否都必须达到上限?
    是的,未命中和躲闪都可以完全避免,只要命中和精准达到上限。然而,虽然命中上限是值得达到的,精准却不是。提高精准对我们的伤害提升影响不大,而且考虑到邪恶输出循环不太紧凑,本来就包含额外公共cd,所以偶尔损失几个技能,只需要重复再施放一次就可以,对总体来说不是什么大问题。

    种族天赋对输出影响如何?
    兽人毫无疑问是部落最佳种族,5专精,5%宠物伤害,血性狂怒嗾使很强的种族技能,对邪dk来说是完美的。

    对联盟来说,如果团队里没有5个德莱尼,则德莱尼最佳,如果有5个或以上德莱尼能覆盖全团,则人类最佳,由于最好的武器都是斧头,所以武器专精可能用处不大,不过自利对于复杂情况下的团队副本是个极其杰出的天赋。

    某几个补丁之前,邪恶双持和邪恶双手曾经并驾齐驱,可是现在不在能看到这种天赋了,是怎么回事?
    天灾打击,主要是应为天灾打击,随着装备的进步,双手天灾的优势越来越明显。另一方面是应为不洁枯萎被削弱了,这对邪恶双持的影响相对要比邪恶双手大得多。

    说到补丁,为什么冰副天赋突然变成了邪恶的理想天赋了?黑冰并没有变啊。
    黑冰是选择冰副天赋的一个原因,但不是全部,还应为冰爪和无尽寒冬。

    我能理解无尽寒冬,力量第一嘛:但是冰爪?那不是和风怒图腾冲突吗?
    在3.33以后,风怒和本身的冰爪不冲突了,两者可以叠加!

    Cool,那么我到底该选择邪冰还是邪血呢?说到现在都很含糊让人无从选择。
    那是因为两者的区别十分模糊,dps差距不到2%。

    如果你有吸血斧(不管英雄还是普通的)或者橙斧,那么邪冰是明显的更优选择,不但黑冰能给特效更多收益,而且冰爪加速能带来更多特效。如果你使用其他的武器,选择天赋可能有些困难,这主要取决于你现有的装备,如果你想最大发挥装备的能力,我建议你使用天赋装备模拟器。如果两者模拟的数值接近,我会建议采用邪冰天赋。

    既然dps相等,为什么使用邪冰,而不是邪血?
    邪冰明显有更高的AoE伤害(黑冰,无尽寒冬在AoE上比刀锋护甲和黑暗定罪强),免费的打断,在运动战中和远距离时更强的输出(感谢增强食尸鬼,疾病,死亡缠绕伤害)。

    如果邪血在单体上的伤害不超过邪冰,那么除了仇恨较低外,这个天赋没有什么收益了。而仇恨不是问题,至少对单体目标来说仇恨不是问题:血领域提供20%的仇恨减免,另外邪dk的伤害有大约15%由食尸鬼石像鬼提供,所以总共大约只造成伤害 (100 – 15) x 0.8 = 68%的仇恨,而狂暴战现在的伤害已经开始超过邪dk,其在狂暴姿态造成大约伤害72%的仇恨,更不用提狂暴战全程使用英勇打击带来的额外仇恨了。既然狂暴战能行,邪dk一定是没问题的。

    所以如果单体输出相同,选择0/17/54。

    为什么我采用了你推荐的天赋和装备,而Kahorie的模拟器显示不是这样?
    或者是你使用模拟器方法不对,或者你的装备不适合特定的天赋(我推荐的是一般性的装备而不是某些特定的,每个人的选择各不相同,有许多不确定因素)。

    如果你确定是模拟器程序编写错误,自己复查一遍或者PM我(信息越详细越好)。

    X机制是怎么工作的,Y装备怎么样,你怎么解释Z情况?
    如果之前的回答都没有解答你的问题,而你觉得这些问题对别人有帮助并且应该加在文章最后,请PM我。

    邪恶天赋宏

    食尸鬼跳跃保命 

    #showtooltip Leap
    /cast [target=治疗者名字] 跳跃
    /petstay

    每个技能绑定符文打击
    每个技能加入
    #showtooltip 技能名
    /cast !符文打击
    /cast 技能名

    按住施放死亡缠绕,按Shift按住对宠物施放死亡缠绕
    #showtooltip Death Coil
    /cast [mod:shift,target=pet] Death Coil; Death Coil

    提高急速ap召唤石像鬼宏
    #showtooltip Summon Gargoyle
    /use 速度药水
    /use trinket 13
    /use trinket 14
    /cast Summon Gargoyle

    不打断循环施放骨盾
    #showtooltip Bone Shield
    /cast Blood Tap
    /stopcasting
    /cast Bone Shield

    相关资源

    Kahorie的 DK 模拟器
    神奇的模拟器,模拟装备,天赋,属性点。
    http://elitistjerks.com/f72/t50274-kahories_dk_simulator_2_0_beta_including_cataclysm/#Pre-requisite

    Zerack的DK装备优化器
    http://elitistjerks.com/f72/t71378-zeracks_dk_gear_optimizer_v2_6_9_03_mar_2010_a/ ]

    Rawr DK dps模拟器
    http://rawr.codeplex.com/ ]

  •  

     

    分类
    Web前端 编程开发

    利用XPath读取Xml文件

    XML 文档对象模型 (DOM) 包含的方法使您可以使用 XML 路径语言 (XPath) 浏览功能查询 DOM 中的信息。 可以使用 XPath 查找单个特定节点,或查找与某个条件匹配的所有节点。

    XPath 选择方法

    如果不使用 XPath,则检索 DOM 中的一个或多个节点将需要大量导航代码。 而使用 XPath 只需要一行代码。 DOM 类提供两种 XPath 选择方法。 SelectSingleNode 方法返回符合选择条件的第一个节点。 SelectNodes 方法返回包含匹配节点的 XmlNodeList。

    下面的示例显示一个 XPath 查询,该查询返回包含书作者 Smith 的所有节点。

    XmlDocument doc = new XmlDocument(filePath);
    XmlNode root = doc.DocumentElement;
    nodeList = root.SelectNodes("descendant::book[author/last-name='Smith']");

    XPath 表达式中的命名空间

    XPath 表达式可以包含命名空间。 使用 XmlNamespaceManager 支持命名空间解析。 如果 XPath 表达式包含前缀,前缀和命名空间 URI 对必须添加到 XmlNamespaceManager,并且 XmlNamespaceManager 传递给 SelectNodes(String, XmlNamespaceManager) 或 SelectSingleNode(String, XmlNamespaceManager) 方法。

    using System;
    using System.IO;
    using System.Xml;
    
    public class Sample
    {
    public static void Main()
    {
    
    XmlDocument doc = new XmlDocument();
    doc.Load("newbooks.xml");
    
    // Create an XmlNamespaceManager to resolve the default namespace.
    XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
    nsmgr.AddNamespace("bk", "urn:newbooks-schema");
    
    // Select and display all book titles.
    XmlNodeList nodeList;
    XmlElement root = doc.DocumentElement;
    nodeList = root.SelectNodes("/bk:bookstore/bk:book/bk:title", nsmgr);
    foreach (XmlNode title in nodeList) {
    Console.WriteLine(title.InnerXml);
    }
    }
    }

    输入

    <?xml version='1.0'?>
    <bookstore xmlns="urn:newbooks-schema">
      <book genre="novel" style="hardcover">
        <title>The Handmaid's Tale</title>
        <author>
          <first-name>Margaret</first-name>
          <last-name>Atwood</last-name>
        </author>
        <price>19.95</price>
      </book>
      <book genre="novel" style="other">
        <title>The Poisonwood Bible</title>
        <author>
          <first-name>Barbara</first-name>
          <last-name>Kingsolver</last-name>
        </author>
        <price>11.99</price>
      </book>
    </bookstore>

    如果大家还是不太明白的话,就看看下面的。下面引用Dragon-China博客中一篇文章。
    之所以要引入XPath的概念,目的就是为了在匹配XML文档结构树时能够准确地找到某一个节点元素。可以把XPath比作文件管理路径:通过文件管理路径,可以按照一定的规则查找到所需要的文件;同样,依据XPath所制定的规则,也可以很方便地找到XML结构文档树中的任何一个节点.

    不过,由于XPath可应用于不止一个的标准,因此W3C将其独立出来作为XSLT的配套标准颁布,它是XSLT以及我们后面要讲到的XPointer的重要组成部分。

    在介绍XPath的匹配规则之前,我们先来看一些有关XPath的基本概念。

    首先要说的是XPath数据类型。XPath可分为四种数据类型:

    1. 节点集(node-set)
      节点集是通过路径匹配返回的符合条件的一组节点的集合。其它类型的数据不能转换为节点集。
    2. 布尔值(boolean)
      由函数或布尔表达式返回的条件匹配值,与一般语言中的布尔值相同,有true和false两个值。布尔值可以和数值类型、字符串类型相互转换。
    3. 字符串(string)
      字符串即包含一系列字符的集合,XPath中提供了一系列的字符串函数。字符串可与数值类型、布尔值类型的数据相互转换。
    4. 数值(number)
      在XPath 中数值为浮点数,可以是双精度64位浮点数。另外包括一些数值的特殊描述,如非数值NaN(Not-a-Number)、正无穷大infinity、负无 穷大-infinity、正负0等等。number的整数值可以通过函数取得,另外,数值也可以和布尔类型、字符串类型相互转换。

    其中后三种数据类型与其它编程语言中相应的数据类型差不多,只是第一种数据类型是XML文档树的特有产物。

    另外,由于XPath包含的是对文档结构树的一系列操作,因此搞清楚XPath节点类型也是很必要的。回忆一下第二章中讲到的XML文档的逻辑结构,一个XML文件可以包含元素、CDATA、注释、处理指令等逻辑要素,其中元素还可以包含属性,并可以利用属性来定义命名空间。相应地,在XPath中,将节点划分为七种节点类型:

    1. 根节点(Root Node)
      根节点是一棵树的最上层,根节点是唯一的。树上其它所有元素节点都是它的子节点或后代节点。对根节点的处理机制与其它节点相同。在XSLT中对树的匹配总是先从根节点开始。
    2. 元素节点(Element Nodes)
      元素节点对应于文档中的每一个元素,一个元素节点的子节点可以是元素节点、注释节点、处理指令节点和文本节点。可以为元素节点定义一个唯一的标识id。
      元素节点都可以有扩展名,它是由两部分组成的:一部分是命名空间URI,另一部分是本地的命名。
    3. 文本节点(Text Nodes)
      文本节点包含了一组字符数据,即CDATA中包含的字符。任何一个文本节点都不会有紧邻的兄弟文本节点,而且文本节点没有扩展名。
    4. 属性节点(Attribute Nodes)
      每 一个元素节点有一个相关联的属性节点集合,元素是每个属性节点的父节点,但属性节点却不是其父元素的子节点。这就是说,通过查找元素的子节点可以匹配出元 素的属性节点,但反过来不成立,只是单向的。再有,元素的属性节点没有共享性,也就是说不同的元素节点不共有同一个属性节点。
      对缺省属性的处理等同于定义了的属性。如果一个属性是在DTD声明的,但声明为#IMPLIED,而该属性没有在元素中定义,则该元素的属性节点集中不包含该属性。
      此外,与属性相对应的属性节点都没有命名空间的声明。命名空间属性对应着另一种类型的节点。
    5. 命名空间节点(Namespace Nodes)每一个元素节点都有一个相关的命名空间节点集。在XML文档中,命名空间是通过保留属性声明的,因此,在XPath中,该类节点与属性节点极为相似,它们与父元素之间的关系是单向的,并且不具有共享性。
    6. 处理指令节点(Processing Instruction Nodes)
      处理指令节点对应于XML文档中的每一条处理指令。它也有扩展名,扩展名的本地命名指向处理对象,而命名空间部分为空。
    7. 注释节点(Comment Nodes)
      注释节点对应于文档中的注释。

    下面,我们来构造一棵XML文档树,作为后面举例的依托:

    <A id="a1">
      <B id="b1">
        <C id="c1">
          <B name="b"/>
          <D id="d1"/>
          <E id="e1"/>
          <E id="e2"/>
        </C>
      </B>
      <B id="b2"/>
      <C id="c2">
        <B/>
        <D id="d2"/>
        <F/>
      </C>
      <E/>
    </A>

    现在,我们就来介绍一些XPath中节点匹配的基本方法。

    1. 路径匹配 路径匹配与文件路径的表示相仿,比较好理解。有以下几个符号:
      符  号 含  义 举  例 匹配结果
      / 指示节点路径 /A/C/D 节点”A”的子节点”C”的子节点”D”,即id值为d2的D节点
      / 根节点
      // 所有路径以”//”后指定的子路径结尾的元素 //E 所有E元素,结果是所有三个E元素
      //C/E 所有父节点为C的E元素,结果是id值为e1和e2的两个E元素
      * 路径的通配符 /A/B/C/* A元素→B元素→C元素下的所有子元素,即name值为b的B元素、id值为d1的D元素和id值为e1和e2的两个E元素
      /*/*/D 上面有两级节点的D元素,匹配结果是id值为d2的D元素
      //* 所有的元素
      | 逻辑或 //B | //C 所有B元素和C元素

       

    2. 位置匹配 对于每一个元素,它的各个子元素是有序的。如:
      举  例 含  义 匹配结果
      /A/B/C[1] A元素→B元素→C元素的第一个子元素 name值为b的B元素
      /A/B/C[last()] A元素→B元素→C元素的最后一个子元素 id值为e2的E元素
      /A/B/C[position()>1] A元素→B元素→C元素之下的位置号大于1的元素 id值为d1的D元素和两个具有id值的E元素

       

    3. 属性及属性 在XPath中可以利用属性及属性值来匹配元素,要注意的是,元素的属性名前要有”@”前缀。例如:
      举  例 含  义 匹配结果
      //B[@id] 所有具有属性id的B元素 id值为b1和b2的两个B元素
      //B[@*] 所有具有属性的B元素 两个具有id属性的B元素和一个具有name属性B元素
      //B[not(@*)] 所有不具有属性的B元素 A元素→C元素下的B元素
      //B[@id=”b1″] id值为b1的B元素 A元素下的B元素

       

    4. 亲属关系匹配 XML文档可归结为树型结构,因此任何一个节点都不是孤立的。通常我们把节点之间的归属关系归结为一种亲属关系,如父亲、孩子、祖先、后代、兄弟等等。在对元素进行匹配时,同样可以用到这些概念。例如:
      举  例 含  义 匹配结果
      //E/parent::* 所有E节点的父节点元素 id值为a1的A元素和id值为c1的C元素
      //F/ancestor::* 所有F元素的祖先节点元素 id值为a1的A元素和id值为c2的C元素
      /A/child::* A的子元素 id值为b1、b2的B元素,id值为c2的C元素,以及没有任何属性的E元素
      /A/descendant::* A的所有后代元素 除A元素以外的所有其它元素
      //F/self::* 所有F的自身元素 F元素本身
      //F/ancestor-or-self::* 所有F元素及它的祖先节点元素 F元素、F元素的父节点C元素和A元素
      /A/C/descendant-or-self::* 所有A元素→C元素及它们的后代元素 id值为c2的C元素、该元素的子元素B、D、F元素
      /A/C/following-sibling::* A元素→C元素的紧邻的后序所有兄弟节点元素 没有任何属性的E元素
      /A/C/preceding-sibling::* A元素→C元素的紧邻的前面所有兄弟节点元素 id值为b1和b2的两个B元素
      /A/B/C/following::* A元素→B元素→C元素的后序的所有元素 id为b2的B元素、无属性的C元素、无属性的B元素、id为d2的D元素、无属性的F元素、无属性的E元素。
      /A/C/preceding::* A元素→C元素的前面的所有元素 id为b2的B元素、id为e2的E元素、id为e1的E元素、id为d1的D元素、name为b的B元素、id为c1的C元素、id为b1的B元素

       

    5. 条件匹配

    条件匹配就是利用一些函数的运算结果的布尔值来匹配符合条件的节点。常用于条件匹配的函数有四大类:节点函数、字符串函数、数值函    数、布尔函数。例如前面提到的last()、position()等等。这些功能函数可以帮助我们精确寻找需要的节点。 函数及功能 作用 count()功能 统计计数,返回符合条件的节点的个数 number()功能 将属性的值中的文本转换为数值 substring() 功能 语法:substring(value, start, length) 截取字符串 sum()功能 求和 这些功能只是XPath语法中的一部分,还有大量的功能函数没有介绍,而且目前XPath的语法仍然在不断发展中。通过这些函数我们可以实现更加复杂的查询和操作。 以上这些匹配方法中,用得最多的还要数路径匹配。依靠给出相对于当前路径的子路径来定位节点的。

    用SelectSingleNode()和SelectNodes()搜索结点

    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                XmlDocument doc = new XmlDocument();//建立文档对象
                try
                {
                    doc.Load("../../myOrder.xml");
                    XmlNode root = doc.DocumentElement;//获取文档的根节点
                    XmlNode temp;
                    temp = root.SelectSingleNode("姓名");
                    Console.WriteLine("(查找1)" + temp);
                    temp = root.SelectSingleNode("定购人信息/姓名");
                    Console.WriteLine("(查找2)" + temp.Name+":"+temp.InnerText);
                    temp = root.SelectSingleNode("订货信息/商品/品名");
                    Console.WriteLine("(查找3)" + temp.Name + ":" + temp.InnerText);
                    XmlNodeList templist = root.SelectNodes("订货信息/商品/品名");
                    Console.WriteLine("(查找4)");
                    foreach (XmlNode nodeinlist in templist)
                    {
                        Console.WriteLine(nodeinlist.Name + ":" + nodeinlist.InnerText);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                Console.ReadLine();//辅助代码,用于保留控制台窗口
            }
        }
    }

    在xml搜索节点(两种方法)

    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                XmlDocument doc = new XmlDocument();//建立文档对象
                try
                {
                    doc.Load("../../myOrder.xml");
                    //在xmlDocument对象中搜索元素
                    Console.WriteLine("");
                    XmlNodeList myNodeList = doc.GetElementsByTagName("品名");
                    for (int i = 0; i < myNodeList;i++ )
                    {
                        Console.WriteLine(myNodeList[i].Name+":"+myNodeList[i].InnerText);
                    }
                    //在xmlElement对象中搜索元素
                    Console.WriteLine("在xmlElement对象中搜索元素");
                    XmlElement myElement = doc.DocumentElement;
                    myElement = (XmlElement)myElement.LastChild;
                    myNodeList = myElement.GetElementsByTagName("品名");
                    for (int i = 0; i < myNodeList; i++)
                    {
                        Console.WriteLine(myNodeList[i].Name + ":" + myNodeList[i].InnerText);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                Console.ReadLine();//辅助代码,用于保留控制台窗口
            }
        }
    }

     

    如何给网站制作一个favicon.ico图标,附代码(图)

    ico图标是网站的头像,在打开网站的时候出现在IE的地址栏里,目前大多数浏览器都支持,最常用的IE6.0则显示加入本地收藏夹网站的ICO图像:

    绝大多数网站可以没有ICO头像,但如果做为一个一流的网站,没有ICO头像是很难令人信服的.就好象一个人穿了一身正装但却没有打领结一样冒失.

    上面的图片是我的个人网站的ICO图标,以下是一些名站的头像:

    Google
    google

    百度
    baidu

    新浪
    新

    新华网
    title

    QQ
    qq

    多数有名的设计网站更重视ICO图标:

    设计在线:
    设计在线

    闪客帝国:
    闪客

    逸品设计:
    逸品室内设计

    其实制作ICO图标很简单,主要是很少软件支持ICO格式,关键是将JPG或GIF转为ICO格式,网上下载的可以转ICO格式的软件全是收费的,没有一个可以完全免费使用的,下面的方法可以不用花钱一样可以做成自己的ICO图标。
    步骤:
    1:先用画图软件最好是FireWorks或Photoshop做一个16*16的图标存为gif或者jpeg格式
    2:到这个网站转化为ico文件:http://www.chami.com/html-kit/services/favicon/
    3:上传到网站的根目录下就完成了。

    现在把你的网站加入收藏夹再重新打开看看,就是这样简单!

    如果没有显示,可以在网页的head里加入下面的代码:

     

    <meta content="text/html; charset=gb2312" http-equiv="Content-Type" />
    <link href="images/favicon.ico" rel="icon" />
    <link href="images/favicon.ico" rel="shortcut icon" />
    

     

    提供一个在线编辑icon的网站:http://www.favicon.cc

    技巧:制作16X16的图片千万不要先做大图再改变分辨率,这样做不出清晰的图标的,就当是用16乘16的=256个小方块拼一个图标出来,在Photoshop里也可以实现.我见过有在16X16的格里拼出一个熊猫的,还是全身的.这就要高度概括的能力了.