ÍêÉÆ×Ô¼ºµÄhtml parse
˵À´²ÑÀ¢£¬ÎÒ·¢ÏÖ×Ô¼ºÐ´µÄÄǸöhtml parse¹ýÓÚÀíÏ뻯£¬½âÎöxml»¹²î²»¶à£¬Ïë½âÎöÏÖ½ñµÄhtml£¬¹À¼ÆÊDz»´ó¿ÉÄܵģ¬ËùÒÔÎÒ°Ñ´úÂëÖØÐ´ÁËÒ»±é£¬Êý¾Ý½á¹¹¸Ä³ÉË«ÏòÁ´±í£¬ÕâÑù½âÎöËٶȸü¿ì£¬×î´ó³Ì¶ÈµØ¶Ôhtml½øÐÐÈÝ´í´¦Àí£¬ÊÔÑéʱ·¢ÏÖµÄÈ·¿ÉÒÔ½âÎöÆÕͨhtml×Ö·û´®£¬²»ÐèÒªÔÙÑϸñ·ûºÏÄǸöxhtml±ê×¼ÁË¡£¶øÇÒÔÚÁ´Ê½µ÷ÓõĴ«µÝ²ÎÊýÉϲ»ÐèÒªÔÙ´«ÈëdomÀàÐ͵IJÎÊý£¬ÕâÑùдÆðÀ´¾Í¸ü¼Ó¼ò±ãÁË¡£
ºÃÁË£¬·Ï»°²»¶à˵£¬¿´´úÂ룺
#include<iostream>
using namespace std;
class node;
class dom;
class nodecollect{
private:
node *n;
int length;
public:
nodecollect();
~nodecollect();
int getlength();
void add(node *nn);
node* item(int i);
};
class node{
private:
int start;
int len;
char name[20];
public:
char* nodehtml();
char* innerhtml();
char* outerhtml();
char* innertext();
char* getattr(char* str);
char* tagname();
void setname(char *str);
node* getparent();
nodecollect* getchild();
node* getnext();
node* getprevious();
node *next;
node *previous;
void setstart(int i);
void setlen(int i);
int getstart();
int getlen();
dom *d;
};
class dom{
private:
char *text;
node *start;
node *end;
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){
start=0;
end=0;
count=0;
int l=strlen(str);
text=new char[l+1];
strcpy(text,str);
char *t=text;
parse(t);
}
int dom::getcount(){
return count;
}
char *dom::gettext(){
return text;
}
node* dom::getitem(int i){
node* n1=start;
while(i--){
&
Ïà¹ØÎĵµ£º
ÀýÈç´Ó1.htmlÌø×ªµ½2.html£º
ÔÚ1.htmlÖУº
¡¡¡¡<form name="loginForm" action="2.htm?pageid=1&str='s'" method="post">
µ±Ò³ÃæÌá½»Ìø×ªµ½2.htmlÖУº
<script type="text/javascript">
<!--
var str = location.search;
//-->
&l ......
ģ̬¶Ô»°¿òµã»÷Á´½Ó²»´ò¿ªÐ´°¿Ú
·½·¨1£º
ÔÚģ̬´°¿ÚÒ³ÃæÀï¼ÓÉÏ£º
<head>
<base target=_self >
</head>
''<base target=_self > ''·Åµ½<head>±êÇ©ÄÚ
·½· ......
ÎļþÀàÐÍ <HTML></HTML> £¨·ÅÔÚµµ°¸µÄ¿ªÍ·Óë½á⣩
ÎļþÖ÷Ìâ <TITLE></TITLE> £¨±ØÐë·ÅÔÚ¡¸ÎÄÍ·¡¹Çø¿éÄÚ£©
ÎÄÍ· <HEAD></HEAD> £¨ÃèÊöÐÔ×ÊÁÏ£¬ÏñÊÇ¡¸Ö÷Ì⡹£©
ÎÄÌå <BODY></BODY> £¨Îļþ±¾Ì壩
½á¹¹ÐÔ¶¨Ò壨ÓÉä¯ÀÀÆ÷¿ØÖƵÄÏÔʾ·ç¸ñ£©
±êÌâ <H?></H?> ......
//½ØÈ¡²¿·ÖÄÚÈÝ·½·¨
public static string strvalue(string value, int length)
{
string strValue = NoHTML(value);// È¥³ýHTML±ê¼Ç
&nb ......
<label> ±êǩΪ input ÔªËØ¶¨Òå±ê×¢£¨±ê¼Ç£©¡£
label ÔªËØ²»»áÏòÓû§³ÊÏÖÈκÎÌØÊâЧ¹û¡£²»¹ý£¬ËüΪÊó±êÓû§¸Ä½øÁË¿ÉÓÃÐÔ¡£Èç¹ûÄúÔÚ label ÔªËØÄÚµã»÷Îı¾£¬¾Í»á´¥·¢´Ë¿Ø¼þ¡£¾ÍÊÇ˵£¬µ±Óû§Ñ¡Ôñ¸Ã±êǩʱ£¬ä¯ÀÀÆ÷¾Í»á×Ô¶¯½«½¹µãתµ½ºÍ±êÇ©Ïà¹ØµÄ±íµ¥¿Ø¼þÉÏ¡£
<label> ±êÇ©µÄ for ÊôÐÔÓ¦µ±ÓëÏà¹ØÔªËØµÄ id ÊôÐÔÏ ......