c++±àдhtmlÎļþ½âÎöÆ÷
×î½ü±¾À´ÊÇҪȥÄÇǶÈëʽ¿ÎµÄ£¬µ«ÊÇÄǿξ¹È»ËµÈËÊýÌ«ÉÙ£¬¿ª²»ÁË£¬¿¿¡£ËùÒÔÕâÁ½ÌìÖ»ÄÜ×Ô¼ºÑо¿µã¶«Î÷ÁË¡£¼ÇµÃ×Ô¼ºÒÔǰ¾ÍÏ붯ÊÖдһ¸ö¹ØÓÚdomµÄ½âÎöÒýÇæ£¬Ö»¹Ö×Ô¼ºÌ«ÀÁ£¬Ò»Ö±Ã»¶¯±Ê¡£×î½üÔÚ¼ÒҲûʲôÊÂ×ö£¬¾Í×Ô¼º¶¯ÊÖдһ¸ö£¬»¨ÁËÒ»Ììʱ¼äдµÄ²î²»¶àÁË£¬ÕýºÃ¶ÍÁ¶×Ô¼ºµÄc++ˮƽ°É¡£
Õâ¸ö½âÎö³ÌÐòÓÐÈý¸öÀ࣬node£¬nodecollect£¬dom¡£domÕâ¸öÀàÊǸö°ü×°£¬Ëü¾ÍÏ൱Óëdocument°É£¬nodecollectÊǽڵãµÄ¼¯ºÏ£¬±ÈÈçgetelementsbytagnameµÄ·µ»Ø¼¯ºÏ°É£¬nodeÀà¾ÍÊǾßÌåµ½½Úµã¡£Õâ¸ö³ÌÐò½âÎöµÄÔÀí¾ÍÊǽâÎöÒ»¶Îhtml×Ö·û´®£¬ÔÚÀïÃæÌáÈ¡½Úµã£¬È»ºóÓÃÁ´±í´æ´¢½Úµã£¬nodeÀàÓÐÁ½¸ö˽ÓжÔÏó£¬start£¬len¡£start¾ÍÊǸýڵã×Ö·û´®µ½Ôʼ×Ö·û´®µÄλÖã¬len¼´Ê¹¸Ã½Úµã×Ö·û´®µÄ³¤¶È¡£ËùÒÔÎÒÃǸù¾Ý¸Ã½ÚµãµÄstartºÍlen¾Í¿ÉÒÔ¶¨Î»¸Ã½ÚµãÔÚÔʼ×Ö·û´®µÄλÖá£
ºÃÁË£¬ÏÂÃæ¿´´úÂ룺
#include<iostream>
using namespace std;
class node;
class dom;
class nodecollect{
private:
node *n;
int length;
public:
nodecollect();
~nodecollect();
int getlength();
node* item(int i);
void add(node *nn);
};
class node{
private:
int start;
int len;
public:
char* innerhtml(dom& d);
char* outerhtml(dom& d);
char* innertext(dom& d);
char* getattr(dom& d,char* str);
char* tagname(dom& d);
node* getparent(dom &d);
nodecollect* getchild(dom &d);
node* getnext(dom &d);
node* getprevious(dom &d);
node *next;
void setstart(int i);
void setlen(int i);
int getstart();
int getlen();
};
class dom{
private:
char *text;
node *n;
int count;
int parse(char *s);
public:
~dom();
char *gettext();
void load(char *str);
node* getitem(int i);
int getcount();
node *getbyid(char* id);
nodecollect* getbytagname(char *tagname);
};
void dom::load(char* str){
n=0;
count=0;
int l=strlen(str
Ïà¹ØÎĵµ£º
¸ßÖÊÁ¿C++±à³Ì Note
¶¨Òå1£ºÄܳ¤ÆÚÎȶ¨µØ±àд³ö¸ßÖÊÁ¿³ÌÐòµÄ³ÌÐòÔ±³ÆÎª±à³ÌÀÏÊÖ¡£
¶¨Òå2£ºÄܳ¤ÆÚÎȶ¨µØ±àд³ö¸ßÄѶȡ¢¸ßÖÊÁ¿³ÌÐòµÄ³ÌÐòÔ±³ÆÎª±à³Ì¸ßÊÖ¡£
°æÈ¨ºÍ°æ±¾µÄÉùÃ÷λÓÚÍ·ÎļþºÍ¶¨ÒåÎļþµÄ¿ªÍ· £¬Ö÷ÒªÄÚÈÝÓУº
£¨1£©°æÈ¨ÐÅÏ¢¡£
£¨2£©ÎļþÃû³Æ£¬±êʶ·û£¬ÕªÒª¡£
£¨3£©µ±Ç°°æ±¾ºÅ£¬×÷Õß/ÐÞ¸ÄÕߣ¬Íê³ÉÈÕÆÚ¡£
......
¶¯Ì¬¼ÓÔØDLLÐèҪʹÓÃWindows APIº¯Êý£ºLoadLibrary¡¢GetProcAddressÒÔ¼°FreeLibrary¡£ÎÒÃÇ¿ÉÒÔʹÓÃDllImportÔÚC#ÖÐʹÓÃÕâÈý¸öº¯Êý¡£
[DllImport("Kernel32")]
public static extern int GetProcAddress(int handle, String funcname);
[DllImport("Kernel32")]
public static extern int L ......
Zen Coding: Ò»ÖÖ¿ìËÙ±àдHTML/CSS´úÂëµÄ·½·¨
À´Ô´£ºhttp://www.javaeye.com/news/13149
Òë×Ô£ºSmashing Magazine
ÖÐÎÄ£ºZen Coding: Ò»ÖÖ¿ìËÙ±àдHTML/CSS´úÂëµÄ·½·¨
ÔÚ±¾ÎÄÖÐÎÒÃǽ«Õ¹Ê¾Ò»ÖÖеÄʹÓ÷ÂCSSÑ¡ÔñÆ÷µÄÓï·¨À´¿ìËÙ¿ª·¢HTMLºÍCSSµÄ·½·¨¡£ËüÓÉSergey Chikuyonok¿ª·¢¡£
ÄãÔÚдHTML´úÂë(°üÀ¨ËùÓбêÇ©¡¢ÊôÐÔ¡¢ ......
»¥¶¯ÐÔÒ»Ö±ÊÇ»¥ÁªÍøµÄÖØµã,ÈÃʹÓÃÕßÓëÍøÕ¾Äܹ»½»»»ÐÅÏ¢,±Ë´Ë¹µÍ¨.±íµ¥Ê¹ÎÒÃÇÄܹ»ÓÐ×éÖ¯µÄ,ʹÓÃͬһ·½Ê½µÄ´ÓʹÓÃÕßÄÇÀïÊÕ¼¯×ÊÁÏ,Òò´ËÔÚÉè¼ÆÍøÕ¾Ê±×ÜÊÇÊôÓÚ"ÈκÎ×´¿ö¶¼ÄÜÄÃÀ´ÓÃ"µÄÄÇÒ»Àà,¾ÙÀýÀ´Ëµ,ÎÒÃÇ·¢ÏÖ´ó¸ÅÓÐ10000ÖÖ±ê¼Ç±íµ¥µÄ²»Í¬·½Ê½.ºÃ°É,»òÐíûÓÐÄÇô¶à,µ«ÊÇÎÒÃÇÈÔÄÜ˼¿¼¼¸ÖÖ×´¿ö,ÈÃʹÓÃÕßÒ×ÓÚʹÓÃ±íµ¥½á¹¹,ͬʱҲ±ãÓ ......