Ê×Ò³ > ѧ¼¼Êõ > ¼¼ÊõÍøÎÄ > Web¿ª·¢ > ÕýÎÄ

[¾«»ª] ¹ØÓÚʹÓÃxml¼¼Êõ±àдͨÓñ¨ÎÄÅäÖóÌÐòµÄ˼·ºÍ˼¿¼£¬»¶Ó­´ó¼ÒÒ»Æ


À´Ô´ chinaunix.net ¿áÇÚÍøÕûÀí

ÎÒÔÚдһ¸öͨѶ³ÌÐò,±¨ÎÄÕâÒ»¿éÎÒµÄÏë·¨ÊÇͨ¹ýxmlÀ´½øÐйÜÀí£¬ÕâÑù¿ÉÒÔ·½±ãµÄ½øÐÐÅäÖúÍÐ޸ġ£
Õâ¸öÏë·¨µÄÆðÒòÊÇÎÒ¿´µ½²»ÉÙÒøÐÐÖмäÒµÎñƽ̨¶¼Äܹ»·½±ãµÄ½øÐÐͨѶ±¨ÎĵÄÐ޸ĺÍÅäÖá£ÎÒµÄÕâ¸öËäÈ»ÊǸöС³ÌÐò£¬
µ«ÎÒÒ²ÏëʵÏÖÕâÑùµÄ¹¦ÄÜ£¬Îª½«À´µÄÈí¼þ·¢Õ¹Ìṩһ¸ö½ÏºÃµÄÌåϵ½á¹¹¡£
×ʼÎÒµÄÏë·¨ÊÇÕâÑùµÄ£º
¶Ôÿһ¸ö±¨Î͍ÒåÀàËÆÏÂÃæµÄÒ»¸öxml½á¹¹
<Msg>;
<ID>;1</ID>;
<Type>;1</Type>;
<Name>;Ç©µ½½»Ò×</Name>;
<AnsMsgGrpID>;2</AnsMsgGrpID>;
<Direct>;0</Direct>;
<Fields>;
<Field>;
<ID>;1</ID>;
<Type>;1</Type>;
<DataType>;1</DataType>;
<Name>;Ðø°ü±êÖ¾</Name>;
<Len>;1</Len>;
</Field>;
<Field>;
<ID>;2</ID>;
<Type>;2</Type>;
<DataType>;1</DataType>;
<Name>;½»Ò×Âë</Name>;
<Len>;4</Len>;
</Field>;
<Field>;
</Field>;
<Fields>;
</Msg>;

¶ÔÓ¦µÄ£¬ÎÒÔÚ³ÌÐòÖж¨Òå½áÊø±¨ÎÄÅäÖÃÐÅÏ¢µÄÊý¾Ý½á¹¹ÈçÏ£º
struct typFld
{
intiID&#59;//×Ö¶ÎÐòºÅ
intiType&#59;//×Ö¶ÎÀàÐÍ 
intiDataType&#59;//×Ö¶ÎÊý¾ÝÀàÐÍ 1-×Ö·ûÐÍ£»2-ÍøÂç×Ö½ÚÐò
char*sFldNm&#59;//×Ö¶ÎÃû³Æ
intiLen&#59;//×ֶεij¤¶È
}

struct typFlds
{
intiCnt&#59;//±¨ÎÄÖÐ×ֶεÄÊýÄ¿
struct typFld *FldPtr&#59;//ÔÚ³ÌÐòÖж¯Ì¬·ÖÅä¿Õ¼ä
}

struct typMsg
{
intiMsgID&#59;//±¨ÎÄID
int iType&#59;//±¨ÎÄÀàÐÍ
char *sMsgNm&#59;//±¨ÎÄÃû³Æ
int iAnsMsgID&#59;//»ØÓ¦±¨Îĵı¨ÎÄID
int iDirect&#59;//±¨Îĵķ½Ïò£¬0--´«Èë&#59;1--´«³ö
struct typFlds *FldsPtr&#59;//Ö¸Ïò´æ´¢¸÷×ֶεÄÅäÖÃÐÅÏ¢µÄ´æ´¢ÇøÓòµÄÖ¸Õë
}&#59;

µ«ÊǺóÀ´ÎÒ·¢ÏÖ±¨ÎÄÖÐÓÐÒ»Ð©ÌØÊâÇé¿ö£¬²ÉÓÃÉÏÃæµÄ·½Ê½ÊDz»ÄÜ´¦ÀíµÄ£¬È磺
ÓÐһЩ±¨ÎĶÎÊÇÐèҪѭ»·µÄ£¬¾ßÌåÑ­»·µÄ´ÎÊýÊÇÔÚ³ÌÐòÔËÐÐÖвÅÄÜÖªµÀµÄ£¬±ÈÈç˵£¬Óû§¶à¸öÔµÄÇ··ÑÃ÷ϸ¾ÍÊÇÕâÖÖÇé¿ö¡£
»¹ÓУ¬ÓÐһЩ±¨ÎĶÎÊÇ¿ÉÄÜÓУ¬¿ÉÄÜûÓе쬱ÈÈç˵£ºÈç¹ûÓû§ÓÐÇ··Ñ£¬»ØÓ¦±¨ÎÄÖоͻáÓÐÓû§¸÷ÔµÄÇ··ÑÃ÷ϸ£¬
Èç¹ûÓû§Ã»ÓÐÇ··Ñ£¬»ØÓ¦±¨ÎľÍÖ»·µ»ØÒ»¸ö´íÎóÂ룬¶øÃ»ÓÐÈκεÄÇ··ÑÃ÷ϸ£¬ÕâЩÇé¿ö¿ÉÄÜ»á»ìºÏÆðÀ´£¬ÎÒ¾õµÃ¾Í±È½ÏÂé·³ÁË£¬
ÎÒÉÏÍøÇë½ÌÁËһЩÅóÓѺó£¬Ä¿Ç°µÄ˼·ÊÇÕâÑùµÄ£º
±¨ÎĵÄxml½á¹¹ÈçÏ£º
<Msg>;
<ID>;1</ID>;
<Type>;1</Type>;
<Name>;Ç©µ½½»Ò×</Name>;
<AnsMsgGrpID>;2</AnsMsgGrpID>;
<Direct>;0</Direct>;
<Fields>;
<Field>;
<ID>;1</ID>;
<Type>;1</Type>;
<DataType>;1</DataType>;
<Name>;Ðø°ü±êÖ¾</Name>;
<Len>;1</Len>;
</Field>;
<Field>;
<ID>;2</ID>;
<Type>;2</Type>;
<DataType>;1</DataType>;
<Name>;½»Ò×Âë</Name>;
<Len>;4</Len>;
</Field>;
<While>;
<If>;Ò»¸öÌõ¼þ±í´ïʽ<If>;
<Loop>;
<iLpCnt>;iQianFeiMonth</iLpCnt>;
<Field>;
<ID>;3</ID>;
<Type>;2</Type>;
<DataType>;1</DataType>;
<Name>;Ç··ÑÃ÷ϸ</Name>;
<Len>;10</Len>;
</Field>;
</Loop>;
</While>;
<Field>;
</Field>;
<Fields>;
</Msg>;

ÒòΪFields½ÚµãÖÐÏÖÔÚÓв»Í¬µÄ½ÚµãÁË£ºField,While,Loop,ÓÐЩÅóÓѵÄÒâ¼ûÊÇÔÚField½ÚµãÖÐʹÓÃÁ´±íµÄÐÎʽ¡£
ÎÒ¿¼ÂÇÁËһϣ¬¾õµÃÁ´±íµÄ±à³ÌÌ«·±Ëö£¬»¹ÊÇÏ£ÍûʹÓÃÊý×éµÄÐÎʽ¡£±à³Ì¼òµ¥¡£
¶ÔÓ¦µÄ³ÌÐòÖеĽṹÐÞ¸ÄÈçÏ£º
struct typFld
{
intiType&#59;//0-±¨ÎÄ×Ö¶Î1-Ñ­»·¿ªÊ¼2-Ñ­»·½áÊø3-Ìõ¼þ¿ªÊ¼4-Ìõ¼þ½áÊø
char*sLpCnt&#59;//Ñ­»·´ÎÊý±í´ïʽ
char *sWhile&#59;//Ìõ¼þ±í´ïʽ

intiID&#59;//×Ö¶ÎÐòºÅ
intiFldType&#59;//×Ö¶ÎÀàÐÍ
intiDataType&#59;//×Ö¶ÎÊý¾ÝÀàÐÍ 1-×Ö·ûÐÍ£»2-ÍøÂç×Ö½ÚÐò
char*sFldNm&#59;//×Ö¶ÎÃû³Æ
intiLen&#59;//×ֶεij¤¶È
}

ÕâÑù¶¨ÒåÒ»¸öͳһµÄ´óµÄ½á¹¹
µ±ÔÚ³ÌÐòÖÐʹÓõÄʱºò£¬±ÈÈç˵£¬¸ù¾Ý¶¨ÒåµÄ±¨ÎĽṹ¶Áȡһ¸ö±¨ÎÄʱ£¬
Èç¹û¶Áµ½Ò»¸ö&quot;Field&quot;½Úµã,¾Í¸ù¾ÝÕâ¸ö½ÚµãµÄÊôÐÔ¶ÁÈ¡ÏàÓ¦³¤¶ÈµÄ×ֶΣ»
Èç¹û¶Áµ½Ò»¸ö&quot;While&quot;½Úµã£¬¾Íת»¯<if>;×Ó½ÚµãÖеÄÌõ¼þ±í´ïʽ£¬Èç¹û±í´ïÊ½ÎªÕæ£¬¾Í¶ÁÈ¡whileÖÐµÄÆäËû×ӽڵ㣬Èç¹ûΪ¼Ù£¬¾ÍÌøµ½<While>;½ÚµãµÄÏÂÒ»¸öÐֵܽڵã&#59;
Èç¹û¶Áµ½Ò»¸ö&quot;Loop&quot;½Úµã£¬¾Í¸ù¾Ý<iLpCnt>;½ÚµãÖеıí´ïʽµÄÖµÖØ¸´¶ÁÈ¡<Loop>;ÖÐµÄÆäËû×ӽڵ㡣

ÎÒÕâÑùµÄÏë·¨ÈçºÎ£¿ÓÐʲô²»¶Ô»òÕß²»Í׵ĵط½Â𣿻¶Ó­´ó¼ÒÌÖÂÛ¡£
ÎÒʹÓõĿª·¢»·¾³ÊÇsco unix +c +lib2xml
ÐֵܽڵãºÍ×Ó½ÚµãµÄ²éÕÒ£¬±éÀú·½·¨lib2xmlÌṩÁË£¬ËùÒÔÎҾͲ»ÓÃÔڽṹÖж¨ÒåÁË
лл£¡



 daidaoke »Ø¸´ÓÚ£º2002-11-04 16:13:23

up


 samhoo »Ø¸´ÓÚ£º2002-11-04 16:40:13

ÄãµÄÎÊÌâÊÇ¡°xml±¾µØ»¯ÎÊÌ⡱£º¼´¡°ÈçºÎ°Ñ½á¹¹²»È·¶¨µÄxml±¨Îĵ¼Èë±¾µØ±à³ÌÓïÑÔ(ÈçcÓïÑÔ)µÄ½á¹¹ÒÔ±ã½øÐвÙ×Ý¡±¡£

½â¾öÕâÒ»ÎÊÌâµÄ¹ý³Ì°üº¬ÁËÁ½¸ö²½Ö裺
1£©°ÑxmlÎĵµÓ³Éäµ½±ãÓÚ·ÃÎÊÄÚ´æ½á¹¹ÖУ¬ÕâÒ»²ã´ÎÒ»°ãÓÉxml¿ª·¢¿âÌṩ£¬ÓëÓû§Ó¦ÓÃÎ޹أ¬Óû§³ÌÐò¿ÉÒÔͨ¹ý¸Ã½á¹¹¼°Æä²Ù×ݺ¯Êý£¬±éÀú/²Ù×ÝxmlÎĵµ£¬ÕâÒ»²ã´ÎÒ»°ãÎÞÐèÓû§³ÌÐò¸ÉÔ¤£¬Ö»ÐèÒª¼òµ¥µÄÖ¸¶¨xmlÎĵµ¼´¿ÉÍê³É£º(ÔÚlibxml2ÖÐ, http://xmlsoft.org)
xmlDocPtr doc&#59;
doc = xmlParseFile(filename)&#59;
½ÓÏÂÀ´¼´¿É¶ÔdocÖ¸Õë½øÐвÙ×Ý¡£

2£©±éÀúÉÏÊödocÖ¸Õ룬ȡµÃÓ¦ÓÃËùÐèµÄÐÅÏ¢£¬ÌîдӦÓÃÏà¹Ø½á¹¹¡£

ûÓÐ<if>;, <Loop>;µÄxml±¨ÎÄÒѾ­³ä·ÖµÄ±í´ïÁ˽ṹµÄÐÅÏ¢£¨Ã»ÓÐij¸ö½ÚµãÒ²ÊÇÐÅÏ¢£©£¬ÄãÔÚ±éÀú¸Ãxml±¨ÎĵÄʱºòÍêÈ«¿ÉÒÔ»ñµÃÕâЩÐÅÏ¢£¬²¢ÔÚµÚ2£©²½ÌîдÕýÈ·µÄÓ¦Óýṹ£¬¶øÎÞÐèÌí¼Ó¶àÓàµÄ¿ØÖƽڵ㣬Ôö¼Ó³ÌÐòµÄ¸´ÔÓ¶È£¬¶øÇÒÄÑÒÔÔĶÁ£¨ÓÈÆäÔÚµ÷ÊÔµÄʱºò£©¡£

ps:ÄãÓõÄlib2xml¿âÊÇ...£¨homepage?£©




 daidaoke »Ø¸´ÓÚ£º2002-11-04 18:19:58

ÎÒÓõÃlib2xml¾ÍÊÇ´Óhttp://xmlsoft.orgÏÂÔØµÄ
xmlDocPtr doc&#59;
doc = xmlParseFile(filename)&#59;
ÕâÁ½¾äÎÒ¶¼ÊÇʹÓÃÁ˵ģ¬¿´ÁËÄãµÄ»°£¬ÎÒ¾õµÃÓ¦¸ÃÊÇÎÒ¶Ôlib2xmlµÄʹÓû¹Ã»ÓÐÀí½â͸³¹£¬
ÔÙ¿´¿´ÌṩµÄº¯Êý°É£¬»ØÍ·ÔÙÏòÄãÇë½Ì
·Ç³£¸Ðл£¡



 billik »Ø¸´ÓÚ£º2002-12-06 22:56:12

Èç¹ûÓÃÁËxml£¬ÊDz»ÊǾͿÉÒÔ½«½âÎö±¨ÎĵÄÈÎÎñ½»¸øÁËxml£¬²»ÓÃ×Ô¼º´ò°ü½â°ü£¿


 daidaoke »Ø¸´ÓÚ£º2002-12-12 22:18:00

ÎÒµÄÏë·¨²»ÊÇÕâÑùµÄ£¬
ÎÒµÄÏë·¨ÊÇ£ºÊ¹ÓÃXMLÀ´¶¨Ò屨ÎĵĽṹ£¬ÈçÒ»¸ö±¨ÎÄÓм¸¸ö×ֶΣ¬Ã¿Ò»¸ö×ֶεij¤¶È£¬µÈµÈÕâЩÐÅÏ¢
ÕâÑùµÄ»°£¬¾Í¿ÉÒÔдһ¸öͨÓõĴò°ü½â°üÄ£¿é£¬À´½ÓÊպͷ¢Ëͱ¨ÎÄ£¬
Èç¹û½«À´±¨ÎĽṹ·¢Éú±ä»¯ÁË£¬¾Í¿ÉÒÔÖ»ÐÞ¸ÄXMLÅäÖÃÎļþµÄÐÅÏ¢£¬¶ø²»ÓÃÐ޸Ĵò°ü½â°üµÄ³ÌÐòÁË¡£
ÎÒ֮ǰµÄÒÉÎÊÊÇÈçºÎÀ´¶¨ÒåÕâ¸öXMLÅäÖÃÎļþµÄ¸ñʽ£¬Ò²¾ÍÊÇ˵ÈçºÎÀ´±íʾһ¸ö±¨ÎĵĽṹ£¬×î½ü¾ßÌå×÷ÁËÒ»¸öÕâÑùµÄ³ÌÐò£¬µ«ÊÇ»¹Ã»×÷Í꣬ÓÐһЩÊÕ»ñ£¬Ò²·¢ÏÖÁËһЩ²»×ãµÄµØ·½ºÍеÄÎÊÌ⣬׼±¸¹ýÒ»¶Îʱ¼äºó×ܽáһϣ¬ÔÙÀ´ÓëÅóÓÑÃÇÌÖÂÛ£¬
»¶Ó­billikÀ´²Î¼ÓÌÖÂÛ


 anders »Ø¸´ÓÚ£º2002-12-13 10:31:39

¹ØÓÚxml±¾Éí£¬Ö»Òª¶¨ÒåºÃ×Ô¼ºµÄdtd»òxsd£¬ÆäÓà¿ÉÒÔÓýâÎöÆ÷Íê³ÉÓï·¨¼°ÄÚÈݽâÎö£¨ÓÃdom»òsax¶¼¿ÉÒÔ£¬¸÷ÓÐÓÅȱµã£©£¬Óò»×Å×Ô¼ºÍê³É£¬µ«¶ÔÄÚÈݱ¾ÉíµÄ²Ù×÷´úÂ룬ÄãÒª×Ô¼ºÐ´¡£


 nile »Ø¸´ÓÚ£º2002-12-13 11:56:20

ĿǰµÄ XML parsers ²»ÐèÒª DTD Ö®ÀàµÄ¡£ ÊÂʵÉÏ DTDÒ²²»ÊÇXML¸ñʽ£¬ÐèҪרÃŵÄparserÈ¥·ÖÎö¡£ (XML Schema ÊÇ XML ¸ñʽ£¬ µ«ºÜ¸´ÔÓ£¬ ÊµÓÃÖеÄXML parsers Ò²¶¼²»»áÈ¥·ÖÎöËü)¡£

½¨Òé²Î¿¼ soap»òÕß xml Ó¦ÓÃÔÚ¼ÓÃܽâÃÜ´«Êä·½ÃæµÄ×ÊÁÏ¡£ 


 anders »Ø¸´ÓÚ£º2002-12-13 12:12:58

¶¨Òådtd¡¢schema²»ÄѰ¡£¬ÓÐרÃŵŤ¾ß¿ÉÒÔ¼õÇáÄãµÄ¹¤×÷±ÈÈçxmlspyµÈ£¬½âÎöÆ÷´ó¶¼ÈÏʶdtd¡¢schema£¬ÆäÂëÎÒÓõͼ¿ÉÒÔ£¬»òÕßÄã¿ÉÒÔÍøÉÏËÑË÷һϣ¬ÓÐÏֳɵÄÈí¼þ¿ÉÓÃ


 jipf »Ø¸´ÓÚ£º2003-01-13 12:30:08

ÎÒ¾õµÄ¿´Ò»¿´£ò£á£ä£é£õ£ó·þÎñÆ÷ºÍ¿Í»§¶ËµÄʵÏÖ¹ý³Ì»áÓкܴó°ïÖú¡£




Ô­ÎÄÁ´½Ó£ºhttp://bbs.chinaunix.net/viewthread.php?tid=15841
×ªÔØÇë×¢Ã÷×÷ÕßÃû¼°Ô­Îijö´¦



Êղر¾Ò³µ½£º ¡¡¡¡¡¡¡¡¡¡