´¿CÓïÑÔXML½âÎöÆ÷
¾«¶Ì¸ßЧµÄXML½âÎöÆ÷,´¿Cµ¥Ò»³ÌÐò,Ó¦ÓÃÓÚÒøÐеĹú˰¿âÐкáÏòÁªÍø½Ó¿ÚϵͳÖÐ,Îȶ¨¿É¿¿,ÔËÐÐËÙ¶È·É¿ì,·ÇÏàÓ¦µÄJAVA³ÌÐò¿É±È.ÒÔÏÂΪ´ó²¿·ÖÔ´Âë:
/* Copyright (c) 2005 wzs */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <varargs.h>
#include "xmlparse.h"
/*xmlµÃµ½½ÚµãÃûÖµ, ·µ»Ø: 1½Úµã±êʶÃû¿ªÍ·, 2½Úµã±êʶÃû½áβ, 3 ×¢ÊÍ , 4ÔªËØÊý¾Ý <=0ÓдíÎó */
#define XVAL_NBEGIN 1
#define XVAL_NEND 2
#define XVAL_NOTE 3
#define XVAL_DATA 4
#define XVAL_TAG 5 /* ¿Õ±êÖ¾ */
#define XVAL_NONE 0
#define XVAL_ERROR -1
static int isSpace(int c) /* Êǿշñ */
{
switch (c) {
case 0x20:
case 0xD:
case 0xA:
case 0x9:
return 1;
}
return 0;
}
static int isNameTChar(int c) /* ÓÐЧµÄÃû³ÆÇ°µ¼·û */
{
return (c>='A' && c<='Z') || (c>='a' && c<='z') || (c=='_') ;
}
int EqXString (XSTRING *dxs, XSTRING *sxs ) /* X×Ö´®¸³Öµ */
{
dxs->text = sxs->text ;
dxs->len = sxs->len ;
return 0;
}
int EqXNode (XNODE *dx, XNODE *sx ) /* X½Úµã¸³Öµ */
{
EqXString ( &(dx->name), &(sx->name) );
dx->index = sx->index ;
dx->parentNode = sx->parentNode ;
dx->level = sx->level ;
dx->tagCount = sx->tagCount ;
EqXString ( &(dx->data), &(sx->data) );
return 0;
}
/* Ôö¼Óͬ¼¶½Úµã: */
XNODE *XAddNode(XTREE *xTree , XSTRING *name)
{
if (xTree->curNode->parentNode == NULL || xTree->nodeCount >= xTree->nodeMaxCount ) return NULL ;
(xTree->nodeCount) ++ ;
xTree->preNode = xTree->curNode ;
xTree->curNode = & (xTree->nodeList[ xTree->nodeCount -1 ] ) ;
xTree->curNode->index = xTree->nodeCount -1 ;
EqXString (&(xTree->curNode->name), name);
xTree->curNode->parentNode = xTree->preNode->parentNode ;
xTree->curNode->lev
Ïà¹ØÎĵµ£º
ÉÏ´Î×ܽáÁËC++£¨ÃæÏò¶ÔÏó£©Éè¼ÆµÄºËÐÄ˼Ï룬²¢ÇÒÀý¾ÙÁËʹÓÃÀàÄ£ÐÍÀ´Ìæ´úifºÍswitchµÄÒ»ÖÖ½ÏΪµäÐ͵ÄÇé¿ö¡£ÏÂÃæÏëÀ´Ì¸Ì¸C++ÔÚ±àÂë·½ÃæµÄÌØµã¡£
ÔںܶྵäµÄC++½Ì³ÌÖж¼ÓÐÒ»¸ö½¨Ò飺Ӧ¾¡Á¿Ê¹Óû§´úÂ루¿âµÄʹÓÃÕߣ©¿´ÆðÀ´¶ÌС¶ø¼òµ¥¡£°´ÕÕ³£Ê¶£¬¼òµ¥µÄ´úÂëͨ³£Òª±È´ó¶ÎµÄ´úÂëºÃÀí½â£¬¶øÓû§´úÂëͨ³£ÊµÏÖµÄÊÇ×îÉϲãµÄ¹¦ÄÜ»òÕ ......
Ô´xmlÎļþ
<?xml version="1.0" encoding="iso-8859-1"?>
<books>
<stock>
<name>The Picasso Code</name>
<author>Dan Blue</author>
<category>Fiction</category>
<description>Cubist paintings reveal a secret society of people ......
c/c++ÃæÊÔÌâ
¡¡¡¡±¾ÎĵÄд×÷Ä¿µÄ²¢²»ÔÚÓÚÌṩC/C++³ÌÐòÔ±ÇóÖ°ÃæÊÔÖ¸µ¼£¬¶øÖ¼ÔÚ´Ó¼¼ÊõÉÏ·ÖÎöÃæÊÔÌâµÄÄÚº¡£ÎÄÖеĴó¶àÊýÃæÊÔÌâÀ´×Ô¸÷´óÂÛ̳£¬²¿·ÖÊÔÌâ½â´ðÒ²²Î¿¼ÁËÍøÓѵÄÒâ¼û¡£
¡¡¡¡Ðí¶àÃæÊÔÌâ¿´ËÆ¼òµ¥£¬È´ÐèÒªÉîºñµÄ»ù±¾¹¦²ÅÄܸø³öÍêÃÀµÄ½â´ð¡£ÆóÒµÒªÇóÃæÊÔÕßдһ¸ö×î¼òµ¥µÄstrcpyº¯Êý¶¼¿É¿´³öÃæÊÔÕßÔÚ¼¼ÊõÉϾ¿¾¹´ïµ½ÁËÔ ......
DOMÊÇ»ùÓÚÆ½Ì¨¡¢ÓïÑÔÎ޹صĹٷ½W3C±ê×¼¡£»ùÓÚÊ÷µÄ²ã´Î£¬ÆäÓŵãÊÇ¿ÉÒÔÒÆÖ²£¬±à³ÌÈÝÒ×£¬¿ª·¢ÈËÔ±Ö»ÐèÒªµ÷Óý¨Ê÷µÄÖ¸Áî¡£ÆäȱµãÊǼÓÔØ´óÎļþ²»ÀíÏë¡£
¡¡¡¡SAXÊÇ»ùÓÚʼþÄ£Ð͵ģ¬ËüÔÚ½âÎö XML ÎĵµµÄʱºò¿ÉÒÔ´¥·¢Ò»ÏµÁеÄʼþ£¬µ±·¢ÏÖ¸ø¶¨µÄtagµÄʱºò£¬Ëü¿ÉÒÔ¼¤»îÒ»¸ö»Øµ÷·½·¨£¬¸æË߸÷½·¨Öƶ¨µÄ±êÇ©ÒѾÕÒµ½¡£ÀàËÆÓëÁ÷ýÌåµÄ½ ......
1. »ù´¡£º¶ÔXML½øÐмòµ¥µÄ²éѯ, ²åÈë, ɾ³ý, ±à¼²Ù×÷
ÔÚÊý¾ÝÁ¿²»ÊǺܴóµÄÇé¿öÏ£¬¿ÉÒÔÓÃxml´úÌæÊý¾Ý¿â´æ´¢Êý¾Ý£¬µ«ÊÇÒª¶¨ÒåxsdÎļþÀ´ÑéÖ¤xmlÎļþ£¬±£Ö¤xmlÊý¾Ý¸ñʽ¡£
ÒÔÏÂÍøÒ³½éÉÜÁËÈçºÎÀûÓÃC#ʵÏÖxmlµÄ²éѯ£¬²åÈ룬ɾ³ýºÍ¸üвÙ×÷£¬Õâ±íÃ÷xml¿ÉÒÔ´úÌæÊý¾Ý¿â´æ´¢Ò»¶¨Á¿µÄÊý¾Ý¡£
http://blog.csdn.net/cmoonc/archive/20 ......