为什么HTMLhtml document.write编译不过

关于i++与++i,不同编译器的结果居然不一样,为什么?_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:480,700贴子:
关于i++与++i,不同编译器的结果居然不一样,为什么?收藏
#include &stdio.h&void main(){
int i = 5, j = 5, p,
p = (i++) + (i++) + (i++);
q = (++j) + (++j) + (++j);
printf(&%d, %d\n&, p, q);}就是上面这段代码,摘自小甲鱼C语言教程,为什么Vc++6.0和在线编译器的结果是:15,22VS2015的结果是:15,24我觉得VS2015的结果像是对的,求前辈指教!
c语言,达内上市公司出品,0元试学,不就业免费重修;c语言,先就业后付款,80天从0到精通,入职名企!
搜未定义行为
这么写,是要被人打的。
编译器版本不一样吧
为什么我会认为q是21
楼主大人能给小弟解惑不初学者,我怎么感觉也是,刚开始第一个赋值为6,然后第二个赋值6又因为++6所以是7,类推下去,不应该是6+7+8=21么,不知道兄台是不是一样想法。 求指教
楼主大人能给小弟解惑不初学者,我怎么感觉也是,刚开始第一个赋值为6,然后第二个赋值6又因为++6所以是7,类推下去,不应该是6+7+8=21么,不知道兄台是不是一样想法。 求指教
打死,因为是UB行为,还好你试过一些,所以此贴不删。此类问题,必处理
其实我好奇22是怎么算的
先加后用,先用后加,理解清楚就顿悟了。
c pr的那本书里有详细介绍这个的章节。。。
只有反汇编能看清具体的执行流程
孔乙己 回字的几种写法
知乎上有人解释过
因为没人这么写,写出这种代码和考这种代码的人都是智障
老谭害人不浅
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或博客访问: 204099
博文数量: 141
博客积分: 106
博客等级: 民兵
技术积分: 611
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
原文地址: 作者:
LinuxBoaboaCGI
主机环境:redhat9交叉编译器:arm-linux-gcc 3.4.1
BOA版本:0.94.13平台:s3c2440http://www.boa.org//src
[root@ EmbedSky ~]# cd /usr/src&&&&&
[root@ EmbedSky src]# tar zxvf boa-0.94.13.tar.tar&
[root@ EmbedSky src]# cd boa-0.94.13&&&&&&&&&
[root@ EmbedSky& boa-0.94.13]# cd src
[root@ EmbedSky src]# ./configure&&&&&&&&&&&& makefile
1. MakefileCC=gccCPP=gcc -E:
CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc
CPP=/usr/local/arm/2.95.3/bin/arm-linux-g++
LDFLAGS = -g –static
3./src/defines.h
#define SERVER_ROOT "/etc/boa"
4 boa-0.94/src/ util.c
char *get_commonlog_time(void)
time_offset = 0;
5. src/config.cCurrent_uid=1
6. compat.h 120
TIMEZONE_OFFSET(foo)foo##->tm_gmtoff
TIMEZONE_OFFSET(foo)foo->tm_gmtoff
7./src/boa.c,
/* if (setuid(0) != -1) {
&&&&&&&&&&& DIE("icky Linux kernel bug!")} */
/*if (passwdbuf == NULL) {
&&&&&&&&&&& DIE("getpwuid");&}*/
8 gethostbyname:: Resource temporarily unavailable
srcconfig.cif(!server_name){..........}266286boa
/*if (!server_name) {
&&&&&&& struct hostent *
&&&&&&& char temp_name[100];
&& if (gethostname(temp_name, 100) == -1) {
&&&&&&&&&&& perror("gethostname:");
&&&&&&&&&&& exit(1);& }
&&&&&&& he = gethostbyname(temp_name);
&&&& &&&if (he == NULL) {
&&&&&&&&&&& perror("gethostbyname:");
&&&&&&&&&&& exit(1);&& }
&&&&&&& server_name = strdup(he->h_name);
&&&&&&& if (server_name == NULL) {
&&&&&&&&&&& perror("strdup:");
&&&&&&&&&&& exit(1);}&}*/
9. /src/log.c
/*&&&& if (dup2(error_log, STDERR_FILENO) == -1) {
&&&&&&&&&&& DIE("unable to dup2 the error log");
&&&&&&& } */&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
10. boa.conf
1 ServerName
#ServerName www.your.org.here
ServerName www.your.org.here
&&& Boagethostbyname::No such file or directory,
2UserGroup
&&& User 0
&&& Group 0
3ErrorLog /var/log/boa/error_log
&&& AccessLog /var/log/boa/access_log
4DocumentRoot /var/www
5DirectoryIndex index.html
6KeepAliveMax 1000
&&& KeepAliveTimeout 10
7MimeTypes /etc/mime.types
8ScriptAlias /cgi-bin/& /var/www/cgi-bin/
11. mime.types/etclinux /etc
[root@ EmbedSky boa-0.94.13]# cd /usr/src/boa-0.94.13/src
[root@ EmbedSky src]# make clean
rm -f y.tab.o lex.yy.o alias.o boa.o buffer.o cgi.o cgi_header.o config.o escape.o get.o hash.o ip.o log.o mmap_cache.o pipe.o queue.o read.o request.o response.o select.o signals.o util.o sublog.o timestamp.o boa core lex.yy.c y.tab.c y.tab.h *~ boa_indexer index_dir.o
[root@EmbedSky src]# make
: # /usr/src/usr/local/arm/3.4.1/bin/arm-linux-strip boa
1. /boa-0.94.13/srcboa/sbin
2. /varlogwww
&&&&&& #cd /var
&& # mkdir log&&&&&& //
&&&# mkdir www&&&& //HTML
&& # mkdir boa
&&&&&& #cd /var/www
&& # mkdir cgi-bin&&&&&&&&& //CGI
#mkdir img&&&&&&&&&&& //
index.html/var/www
&& # chmod 777 /var/log/* //777
& &# chmod 777 /var/www/*
3. /etcboa
# mkdir /etc/boa
/boa-0.94.13boa.conf/etc/boa
# chmod 777 /etc/boa/*
# ifconfig eth0 172.20.182.92 netmask 255.255.255.0
ip address &&&&&&172.20.182.82
subnet mask&&&& 255.255.255.0
default gateway& 172.20.182.254
dns servers&&&&& 61.138.125.65
(pcip)&&&&&&&&&&&&&&&&&&&&&&&&&
# boa&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&
# [01/Jan/:44 +0000] boa: server version Boa/0.94.13 //
[01/Jan/:44 +0000] foa: server built Dec 12 2011 at 16:54:43. //
[01/Jan/:44 +0000] boa: starting server pid=573, port 80 //573 80
[1] + Done&&&&&&&&&&&&&&&&&&&&&& boa
# ps&&&&&&&&&&&&&&&&&&&&&& //
& PID& Uid&&&&&&& VSZ Stat Command
&&& 1 root&&&&&& 1816 SW& init
&&& 2 root&&&&&&&&&&& SWN [ksoftirqd/0]
&&& 3 root&&&&&&&&&&& SW< [events/0]
&&& 4 root&&&&&&&&&&& SW< [khelper]
&&& 5 root&&&&&&&&&&& SW< [kthread]
&& 21 root&&&&&&&&&&& SW< [kblockd/0]
&& 24 root&&&&&&&&&&& SW& [khubd]
&& 77 root&&&&&&&&&&& SW& [pdflush]
&& 78 root&&&&&&&&&&& SW& [pdflush]
&& 80 root&&&&&&&&&&& SW< [aio/0]
&& 79 root&&&&&&&&&&& SW& [kswapd0]
& 286 root &&&&&&&&&&&SW& [kseriod]
& 340 root&&&&&&&&&&& SW& [mtdblockd]
& 376 root&&&&&&&&&&& SW< [krfcommd]
& 396 root&&&&& 19844 SW& ./qpe
& 397 root&&& $& 1828 SW& -sh
& 398 root&&&&&& 1816 SW& init
& 414 root&&&&&& 9008 SW< /usr/bin/qss
& 456 root&&&&&& 1820 SW& /bin/sh
& 538 root&&&&& 13096 SWN /usr/bin/quicklauncher
& 573 root&&&&&& 2116 SW& boa&&&&& // boa
& 574 root&&&&&& 1820 RW& ps
# eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
[01/Jan/:37 +0000] request from 172.20.182.82 "GET /images/bg01.gif HTTP/1.5" ("/var/www/images/bg01.gif"): document open: No such file or directory
[01/Jan/:42 +0000] request from 172.20.182.82 "GET /favicon.ico HTTP/1.1" ("/var/www/favicon.ico"): document open: No such file or directory
[01/Jan/:50 +0000] request from 172.20.182.82 "GET /images/bg01.gif HTTP/1.1" ("/var/www/images/bg01.gif"): document open: No such file or director}
[01/Jan/:53 +0000] request from 172.20.182.82 "GET /favicon.ico HTTP/1.1" ("/var/www/favicon.ico"): document open: No such file or directory
[01/Jan/:10 +0000] request from 172.20.182.82 "GET /favicon.ico HTTP/1
.1" ("/var/www/favicon.ico"): document open: No such file or directory
IE http//172.20.182.91/pengtiegang.html
http//172.20.182.92/index.html
CGIcgictest.cgi/var/www/cgi-bin/
http//172.20.182.92/cgi-bin/cgictest.cgi
PC/var/www /var/www/cgi-bin/CGI
[root@localhost src]# make clean
[root@localhost src]# make
bison -y -d boa_grammar.y
/usr/local/arm/3.4.1/bin/arm-linux-gcc -g -O2 -pipe -Wall -I.&& -c -o y.tab.o y.tab.c
y.tab.c: In function `yyparse':
y.tab.c:1295: warning: implicit declaration of function `yylex'
flex boa_lexer.l
/usr/local/arm/3.4.1/bin/arm-linux-gcc -g -O2 -pipe -Wall -I.&& -c -o lex.yy.o lex.yy.c
..............................
lex.yy.c:1246: warning: 'yyunput' defined but not used
/usr/local/arm/3.4.1/bin/arm-linux-gcc -g -O2 -pipe -Wall -I.&& -c -o alias.o alias.c
/usr/local/arm/3.4.1/bin/arm-linux-gcc -g -O2 -pipe -Wall -I.&& -c -o boa.o boa.c
/usr/local/arm/3.4.1/bin/arm-linux-gcc -g -O2 -pipe -Wall -I.&& -c -o buffer.o buffer.c
/usr/local/arm/3.4.1/bin/arm-linux-gcc -g -O2 -pipe -Wall -I.&& -c -o cgi.o cgi.c
/usr/local/arm/3.4.1/bin/arm-linux-gcc -g -O2 -pipe -Wall -I.&& -c -o cgi_header.o cgi_header.c
/usr/local/arm/3.4.1/bin/arm-linux-gcc -g -O2 -pipe -Wall -I.&& -c -o config.o config.c
................
/usr/local/arm/3.4.1/bin/arm-linux-gcc -g -O2 -pipe -Wall -I.&& -c -o index_dir.o index_dir.c
/usr/local/arm/3.4.1/bin/arm-linux-gcc -o boa_indexer index_dir.o escape.o -g -static
# ./boa&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
eth0: Transmit buffer not free!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
eth0: Transmit buffer not free!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
eth0: Transmit buffer not free!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
eth0: Transmit buffer not free!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
[01/Jan/:05 +0000] boa: server version Boa/0.94.13&&&&&&&&&&&&&&&&&&
[01/Jan/:05 +0000] boa: server built May 11 2009 at 18:21:02.&&&&&&&
[01/Jan/:05 +0000] boa: starting server pid=343, port 80&&&&&&&&&&&&
[root@(none) boa]# [01/Jan/:43 +0000] request from 10.10.205.154 "GETy
[01/Jan/:43 +0000] request from 10.10.205.154 "GET /stylesheet-imagesy
BoaHTTPservfoxBoaLinux
阅读(1855) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。为什么这段css编译不了?_html吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:72,107贴子:
为什么这段css编译不了?收藏
头部里边嵌有c{text-align:center} body里边有&span class="c"&
&a href=""&新闻&/a& &b&网页&/b& &a href=""&贴吧&/a& &a href=""&知道&/a& &a href=""&音乐&/a& &a href=""&图片&/a& &a href=""&视频&/a& &a href=""&地图&/a&&/span&
WeX5——一款为APP量身打造的工具,代码量减少80%,html5开发必备!立即体验!html5开发神器,WeX5可开发H5 App/安卓APP/IOSAPP/微信APP/Hybrid app等
为什么它不能居中排列呢
一:&C&的长宽边框呢?二:既然你分的组,那你&C&前面的&.&呢?
span是行内元素,你的css的意思是文字居中,而不是整个span居中
你应该学习下CSS样式表中的选择器。你这个CSS样式表中C前边应该有个点(“.C{ }”)
这个我也不知道--楼主粉我一个吧!
类是 .c{text-align:center}ID是 #c{text-align:center}直接定义整个页面才是 span{text-align:center}
&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""&&html xmlns=""&&head&&meta http-equiv="Content-Type" content="text/ charset=utf-8" /&&title&无标题文档&/title&&style type="text/css"&.c{width:text-align:}&/style&&/head&&body&&div class="c"&&span&&a href=""&新闻&/a& &b&网页&/b& &a href=""&贴吧&/a& &a href=""&知道&/a& &a href=""&音乐&/a& &a href=""&图片&/a& &a href=""&视频&/a& &a href=""&地图&/a&
&/span&&/div&&/body&&/html&
想要水平居中定位,必须先确定宽度。span和p都是行内元素,你可以理解我一个段落和一行文字,没有宽度这一概念。
既然不能对span元素进行css定义,假如我要实现:傻逼&center&豆逼&/center&牛逼 这种效果,怎么用css做出来?
傻逼 豆逼 牛逼
&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""&&html& &head&
&title& New Document &/title&
&meta name="Generator" content="EditPlus"&
&meta name="Author" content=""&
&meta name="Keywords" content=""&
&meta name="Description" content=""&
&style type="text/css"&
body {text-align:}
&/style& &/head& &body&
&a href=""&新闻&/a& &b&网页&/b& &a href=""&贴吧&/a& &a href=""&知道&/a& &a href=""&音乐&/a& &a href=""&图片&/a& &a href=""&视频&/a& &a href=""&地图&/a& &/body&&/html&
传说中的点呢。。。。
我跟小明一起喜欢上了贴吧,直到有一天他都11级了,我才5级,就向小红讨教有没有什么秘籍。小刚憋了半天语重心长地告诉我:”你每到一个帖子就粘贴这句话,十五天就到了11级”......我彻底恍然大悟,吧主再也不用担心我的经验了!!!假如你每天签到拿4经验,18级=75000天,如果从1岁开始签到,那100 年=36500天,你差不多要活200年保持每天签到(谁知道200年后尼玛还有没有签到这玩意), 如果你每天再水4经验,时间减半,但考虑现实,你不可能再活100年,取50年吧,你就要每天水16经验,可能你是个勤快的人,每天水32经验,那就需要25年!!!再如果你是个大水怪,每天水64经验,那就只要12.5年!!!还如果你个心急的人,每天水128经验,你只要6.25年!!!!假如你已经急不可耐了,每天水256经验,那你碉堡了,只要3.125年!!!当然,你会觉得3年还是太远了,每天你闲的蛋疼,忙忙碌碌的水512经验,碉堡了, 你只需要1.5625年,只比1年半多一点!!!什么!!你还不满意?那你觉得你可能一天水1024经验吗,可能吗?可能吗??可能!!!据说回复100字或者一百字以上可以得到11~30经验,真的很棒......那么,按照队形,点击复制,把我的话复制一片,拿经验妥妥的
当然不能啊,span是行内元素,起码得价格长宽吧
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或FPGA屏蔽模块,编译出来的文件大小为何不变 - FPGA|CPLD|ASIC论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
FPGA屏蔽模块,编译出来的文件大小为何不变
11:48:49  
目标板给分配的程序存储flash小了,需要调整程序以适应。但是我发现无论屏蔽哪个模块,最终生成的程序大小并没有变化,请问这是什么原因?
如何才能缩小生成的最终程序,或者压缩生成的程序大小。拜谢。
14:18:01  
没找到解决办法,但是发现了原因。FPGA芯片最后的程序和目标芯片有关系,无论做多少逻辑,生成程序的大小都由选定的芯片型号决定。
17:20:23  
最后生成的程序大小都是一样大的,因为这个是根据芯片确定的。
你可以直接使用工作进行压缩,压缩后的文件就会根据程序的大小变化了。
但是在加载的时候需要解压缩。
Powered by周金桥 的BLOG
用户名:周金桥
文章数:240
评论数:863
访问量:2044056
注册日期:
阅读量:5863
阅读量:12276
阅读量:344212
阅读量:1044804
51CTO推荐博文
&在以前的项目中周公曾有解析HTML的情况,当时是采用正则表达式一步步将无关的HTML注释及JS代码部分删除掉,然后再用正则表达式找出需要提取的部分,可以说使用正则表达式来做是一个比较繁琐的过程,特别是对于正则表达式不是很熟悉或者要处理的HTML很复杂的情况下。前一阵子周公还是通过这个办法将上保存的网址导入到,本来还想将周公博客上的文章好好整理一下,但是考虑到使用正则真的是很繁琐也很麻烦,所以就一直没有动手。
&直到前两天在网上发现了一个.NET下的HTML解析类库HtmlAgilityPack。HtmlAgilityPack是一个支持用XPath来解析HTML的类库,在花了一点时间学习了解HtmlAgilityPack的API和XPath之后,周公就做了一个简单的工具完成了这个功能,目前在CSDN上周公博文的收集地址为:,在51CTO上周公博文的收集地址为。HtmlAgilityPack是一个开源的.NET类库,它的主页是,在这里可以下载到最新版的类库及API手册,此外还可以下载到一个用于调试的辅助工具。
&XPath简明介绍
&XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。
&下面列出了最有用的路径表达式:
&nodename:选取此节点的所有子节点。
&/:从根节点选取。
&//:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
&.:选取当前节点。
&..:选取当前节点的父节点。
&例如有下面一段XML:
&version=&1.0&&encoding=&utf-8&&&&&&&&&在ASP.NET中使用Highcharts&js图表&&&&http://zhoufoxcn./324&&&&&type=&en&&&&&&&&&&lang=&eng&Log4Net使用详解(续)&&&&http://blog.csdn.net/zhoufoxcn/archive//6029021.aspx&&&&&type=&zh-cn&日&&&&&&&&J2ME开发的一般步骤&&&&http://blog.csdn.net/zhoufoxcn/archive//6540223.aspx&&&&&type=&zh-cn&日&&&&&&&&&lang=&eng&PowerDesign高级应用&&&&http://zhoufoxcn./415&&&&&type=&zh-cn&&&&&&
&&针对上面的XML文件,我们列出了带有谓语的一些路径表达式,以及表达式的结果:
&/Articles/Article[1]:选取属于Articles子元素的第一个Article元素。
&/Articles/Article[last()]:选取属于Articles子元素的最后一个Article元素。
&/Articles/Article[last()-1]:选取属于Articles子元素的倒数第二个Article元素。
&/Articles/Article[position()&3]:选取最前面的两个属于 bookstore 元素的子元素的Article元素。
&//title[@lang]:选取所有拥有名为lang的属性的title元素。
&//CreateAt[@type='zh-cn']:选取所有CreateAt元素,且这些元素拥有值为zh-cn的type属性。
&/Articles/Article[Order&2]:选取Articles元素的所有Article元素,且其中的Order元素的值须大于2。
&/Articles/Article[Order&3]/Title:选取Articles元素中的Article元素的所有Title元素,且其中的Order元素的值须小于3。
&HtmlAgilityPack API简明介绍
&在HtmlAgilityPack中常用到的类有HtmlDocument、HtmlNodeCollection、
HtmlNode和HtmlWeb等。
&其流程一般是先获取HTML,这个可以通过HtmlDocument的Load()或LoadHtml()来加载静态内容,或者也可以HtmlWeb的Get()或Load()方法来加载网络上的URL对应的HTML。
&得到了HtmlDocument的实例之后,就可以用HtmlDocument的DocumentNode属性,这是整个HTML文档的根节点,它本身也是一个HtmlNode,然后就可以利用HtmlNode的SelectNodes()方法返回多个HtmlNode的集合对象HtmlNodeCollection,也可以利用HtmlNode的SelectSingleNode()方法返回单个HtmlNode。
&HtmlAgilityPack实战
&下面是一个解析CSDN博客的代码实例:
using&S &&using&System.Collections.G &&using&System.T &&using&HtmlAgilityP &&using&System.Text.RegularE && &&namespace&CrawlPageApplication &&{ &&&&&&&&&&&&&&&&&public&class&CSDN_Parser &&&&&&{ &&&&&&&&&&private&const&string&CategoryListXPath&=&&//html[1]/body[1]/div[1]/div[1]/div[2]/div[1]/div[1]/dl[1]/dd[3]/div[1]/ul[1]/li&; &&&&&&&&&&private&const&string&CategoryNameXPath&=&&//li[1]/a[2]&; && &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&public&static&List&Category&&ParseIndexPage(string&url) &&&&&&&&&&{ &&&&&&&&&&&&&&Uri&uriCategory=null; &&&&&&&&&&&&&&List&Category&&list&=&new&List&Category&(40); &&&&&&&&&&&&&& &&&&&&&&&&&&&&HtmlDocument&document&=&new&HtmlDocument(); &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&document.Load(&CSDN_index.html&,&Encoding.UTF8); &&&&&&&&&&&&&&HtmlNode&rootNode&=&document.DocumentN &&&&&&&&&&&&&&HtmlNodeCollection&categoryNodeList&=&rootNode.SelectNodes(CategoryListXPath); &&&&&&&&&&&&&&HtmlNode&temp&=&null; &&&&&&&&&&&&&&Category&category&=&null; &&&&&&&&&&&&&&foreach&(HtmlNode&categoryNode&in&categoryNodeList) &&&&&&&&&&&&&&{ &&&&&&&&&&&&&&&&&&temp&=&HtmlNode.CreateNode(categoryNode.OuterHtml); &&&&&&&&&&&&&&&&&&category&=&new&Category(); &&&&&&&&&&&&&&&&&&category.Subject&=&temp.SelectSingleNode(CategoryNameXPath).InnerT &&&&&&&&&&&&&&&&&&Uri.TryCreate(UriBase,&temp.SelectSingleNode(CategoryNameXPath).Attributes[&href&].Value,&out&uriCategory); &&&&&&&&&&&&&&&&&&category.IndexUrl&=&uriCategory.ToString(); &&&&&&&&&&&&&&&&&&category.PageUrlFormat=category.IndexUrl+&?PageNumber={0}&; &&&&&&&&&&&&&&&&&&list.Add(category); &&&&&&&&&&&&&&&&&&Category.CategoryDetails.Add(category.IndexUrl,&category); &&&&&&&&&&&&&&} &&&&&&&&&&&&&&return& &&&&&&&&&&} && &&&&&&} &&}&
&&当然实现类似的解析51CTO的博客文章数据的代码如下:
using&S &&using&System.Collections.G &&using&System.T &&using&HtmlAgilityP &&using&System.Text.RegularE && &&namespace&CrawlPageApplication &&{ &&&&&&&&&&&&&&&&&public&class&CTO_Parser &&&&&&{ &&&&&&&&&&private&static&Encoding&PageEncoding&=&Encoding.GetEncoding(&gb2312&); &&&&&&&&&&private&static&readonly&Uri&UriBase&=&new&Uri(&http://zhoufoxcn.&); &&&&&&&&&&private&static&string&CategoryListXPath&=&&/html[1]/body[1]/div[5]/div[1]/div[1]/div[2]/ul[1]/li&; &&&&&&&&&&private&static&string&CategoryNameXPath&=&&/li[1]/a[1]&; && &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&public&static&List&Category&&ParseIndexPage(string&url) &&&&&&&&&&{ &&&&&&&&&&&&&&Uri&uriCategory&=&null; &&&&&&&&&&&&&&List&Category&&list&=&new&List&Category&(40); && &&&&&&&&&&&&&&HtmlDocument&document&=&new&HtmlDocument(); &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&document.Load(&51cto_index.html&,&PageEncoding); &&&&&&&&&&&&&&HtmlNode&rootNode&=&document.DocumentN &&&&&&&&&&&&&&HtmlNodeCollection&categoryNodeList&=&rootNode.SelectNodes(CategoryListXPath); &&&&&&&&&&&&&&HtmlNode&temp&=&null; &&&&&&&&&&&&&&Category&category&=&null; &&&&&&&&&&&&&&foreach&(HtmlNode&categoryNode&in&categoryNodeList) &&&&&&&&&&&&&&{ &&&&&&&&&&&&&&&&&&temp&=&HtmlNode.CreateNode(categoryNode.OuterHtml); &&&&&&&&&&&&&&&&&&if&(temp.SelectSingleNode(CategoryNameXPath).InnerText&!=&&全部文章&) &&&&&&&&&&&&&&&&&&{ &&&&&&&&&&&&&&&&&&&&&&category&=&new&Category(); &&&&&&&&&&&&&&&&&&&&&&category.Subject&=&temp.SelectSingleNode(CategoryNameXPath).InnerT &&&&&&&&&&&&&&&&&&&&&&Uri.TryCreate(UriBase,&temp.SelectSingleNode(CategoryNameXPath).Attributes[&href&].Value,&out&uriCategory); &&&&&&&&&&&&&&&&&&&&&&category.IndexUrl&=&uriCategory.ToString(); &&&&&&&&&&&&&&&&&&&&&&category.PageUrlFormat&=&category.IndexUrl&+&&/page/{0}&; &&&&&&&&&&&&&&&&&&&&&&list.Add(category); &&&&&&&&&&&&&&&&&&&&&&Category.CategoryDetails.Add(category.IndexUrl,&category); &&&&&&&&&&&&&&&&&&} &&&&&&&&&&&&&&} &&&&&&&&&&&&&&return& &&&&&&&&&&} &&&&&&} &&}&
&&在上面的代码中出现了一个Category类,该类的定义如下:
&&为了鼓励大家动手尝试以及在本项目中使用了周公的私家类库,所以不提供全部源代码下载,这里提供周公操作的最终软件界面:
&总结:HtmlAgilityPack确实是一个功能强大、体积小的开源HTML解析类库,在本篇仅仅是介绍了其中几个类的用法,但光这些就足以供周公快速实现了许久没有实现的功能,如果让周公用正则表达式来实现类似的功能,时间肯定要比用这个长得多。
&说明:周公最近也在琢磨一些关于微博的应用,如果有相同爱好者或者在使用微博的读者,请围观周公的微博,网址是:。
&周公本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
17:57:46 23:44:37 10:36:16 10:36:30 12:54:29 17:37:31 23:03:13 12:09:34 15:58:50 13:49:40 16:53:03 16:29:04 16:40:29 16:55:14 17:36:34 &&1&
&&页数 ( 1/2 ) &

我要回帖

更多关于 chrome html document 的文章

 

随机推荐