1.¶¨Òå½éÉÜ
(1).XML¶¨Òå
À©Õ¹±ê¼ÇÓïÑÔ (Extensible Markup Language, XML) £¬ÓÃÓÚ±ê¼Çµç×ÓÎļþʹÆä¾ßÓнṹÐԵıê¼ÇÓïÑÔ£¬¿ÉÒÔÓÃÀ´±ê¼ÇÊý¾Ý¡¢¶¨ÒåÊý¾ÝÀàÐÍ£¬ÊÇÒ»ÖÖÔÊÐíÓû§¶Ô×Ô¼ºµÄ±ê¼ÇÓïÑÔ½øÐж¨ÒåµÄÔ´ÓïÑÔ¡£ XMLʹÓÃDTD(document type definition)ÎĵµÀàÐͶ¨ÒåÀ´×éÖ¯Êý¾Ý;¸ñʽͳһ£¬¿çƽ̨ºÍÓïÑÔ£¬ÔçÒѳÉΪҵ½ç¹«Èϵıê×¼¡£
XMLÊDZê׼ͨÓñê¼ÇÓïÑÔ (SGML) µÄ×Ó¼¯£¬·Ç³£ÊÊºÏ Web ´«Êä¡£XML ÌṩͳһµÄ·½·¨À´ÃèÊöºÍ½»»»¶ÀÁ¢ÓÚÓ¦ÓóÌÐò»ò¹©Ó¦É̵Ľṹ»¯Êý¾Ý¡£
(2).JSON¶¨Òå
JSON(JavaScript Object Notation)Ò»ÖÖÇáÁ¿¼¶µÄÊý¾Ý½»»»¸ñʽ£¬¾ßÓÐÁ¼ºÃµÄ¿É¶ÁºÍ±ãÓÚ¿ìËÙ±àдµÄÌØÐÔ¡£¿ÉÔÚ²»Í¬Æ½Ì¨Ö®¼ä½øÐÐÊý¾Ý½»»»¡£JSON²ÉÓüæÈÝÐԺܸߵġ¢ÍêÈ«¶ÀÁ¢ÓÚÓïÑÔÎı¾¸ñʽ£¬Í¬Ê±Ò²¾ß±¸ÀàËÆÓÚCÓïÑÔµÄϰ¹ß(°üÀ¨C, C++, C#, Java, JavaScript, Perl, PythonµÈ)ÌåϵµÄÐÐΪ¡£ÕâÐ©ÌØÐÔʹJSON³ÉΪÀíÏëµÄÊý¾Ý½»»»ÓïÑÔ¡£
JSON»ùÓÚJavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 µÄÒ»¸ö×Ó¼¯¡£
2.XMLºÍJSONÓÅȱµã
(1).XMLµÄÓÅȱµã
<1>.XMLµÄÓŵã
A.¸ñʽͳһ£¬·ûºÏ±ê×¼£»
B.ÈÝÒ×ÓëÆäËûϵͳ½øÐÐÔ¶³Ì½»»¥£¬Êý¾Ý¹²Ïí±È½Ï·½±ã¡£
<2>.XMLµÄȱµã
A.XMLÎļþÅÓ´ó£¬Îļþ¸ñʽ¸´ÔÓ£¬´«ÊäÕ¼´ø¿í£»
B.·þÎñÆ÷¶ËºÍ¿Í»§¶Ë¶¼ÐèÒª»¨·Ñ´óÁ¿´úÂëÀ´½âÎöXML£¬µ¼Ö·þÎñÆ÷¶ËºÍ¿Í»§¶Ë´úÂë±äµÃÒì³£¸´ÔÓÇÒ²»Ò×ά»¤£»
C.¿Í»§¶Ë²»Í¬ä¯ÀÀÆ÷Ö®¼ä½âÎöXMLµÄ·½Ê½²»Ò»Ö£¬ÐèÒªÖØ¸´±àдºÜ¶à´úÂ룻
D.·þÎñÆ÷¶ËºÍ¿Í»§¶Ë½âÎöXML»¨·Ñ½Ï¶àµÄ×ÊÔ´ºÍʱ¼ä¡£
(2).JSONµÄÓÅȱµã
<1>.JSONµÄÓŵ㣺
A.Êý¾Ý¸ñʽ±È½Ï¼òµ¥£¬Ò×ÓÚ¶Áд£¬¸ñʽ¶¼ÊÇѹËõµÄ£¬Õ¼Óôø¿íС£»
B.Ò×ÓÚ½âÎö£¬¿Í»§¶ËJavaScript¿ÉÒÔ¼òµ¥µÄͨ¹ýeval()½øÐÐJSONÊý¾ÝµÄ¶ÁÈ¡£»
C.Ö§³Ö¶àÖÖÓïÑÔ£¬°üÀ¨ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, RubyµÈ·þÎñÆ÷¶ËÓïÑÔ£¬±ãÓÚ·þÎñÆ÷¶ËµÄ½âÎö£»
D.ÔÚPHPÊÀ½ç£¬ÒѾÓÐPHP-JSONºÍJSON-PHP³öÏÖÁË£¬Æ«ÓÚPHPÐòÁл¯ºóµÄ³ÌÐòÖ±½Óµ÷Óã¬PHP·þÎñÆ÷¶ËµÄ¶ÔÏó¡¢Êý×éµÈÄÜÖ±½ÓÉú³ÉJSON¸ñʽ£¬±ãÓÚ¿Í»§¶ËµÄ·ÃÎÊÌáÈ¡£»
E.ÒòΪJSON¸ñʽÄÜÖ±½ÓΪ·þÎñÆ÷¶Ë´úÂëʹÓ㬴ó´ó¼ò»¯ÁË·þÎñÆ÷¶ËºÍ¿Í»§¶ËµÄ´úÂ뿪·¢Á¿£¬ÇÒÍê³ÉÈÎÎñ²»±ä£¬²¢ÇÒÒ×ÓÚά»¤¡£
<2>.JSONµÄȱµã
A.ûÓÐXML¸ñʽÕâÃ´ÍÆ¹ãµÄÉîÈëÈËÐĺÍϲÓù㷺£¬Ã»ÓÐXMLÄÇôͨÓÃÐÔ£»
B.JSON¸ñʽĿǰÔÚWeb ServiceÖÐÍÆ¹ã»¹ÊôÓÚ³õ¼¶½×¶Î¡£
3.XMLºÍJSONµÄÓÅȱµã¶Ô±È
(1).¿É¶ÁÐÔ·½Ãæ¡£
JSONºÍXMLµÄÊý¾Ý¿É¶ÁÐÔ»ù±¾Ïàͬ£¬JSONºÍXMLµÄ¿É¶ÁÐÔ¿Éν²»ÏàÉÏÏ£¬Ò»±ßÊǽ¨ÒéµÄÓï·¨£¬Ò»±ßÊǹ淶µÄ±êÇ©ÐÎʽ£¬XML¿É¶ÁÐԽϺÃЩ¡£
(2).¿ÉÀ©Õ¹ÐÔ·½Ãæ¡£
XMLÌìÉúÓкܺõÄÀ©Õ¹ÐÔ£¬JSONµ±È»Ò²ÓУ¬Ã»ÓÐʲôÊÇXMLÄÜÀ©Õ¹£¬JSON²»Äܵġ£
(3).±àÂëÄѶȷ½Ãæ¡£
XMLÓзḻµÄ±àÂ빤¾ß£¬±ÈÈçDom4j¡¢JDomµÈ£¬JSONÒ²ÓÐjson.orgÌṩµÄ¹¤¾ß£¬µ«ÊÇJSONµÄ±àÂëÃ÷ÏÔ±ÈXMLÈÝÒ×Ðí¶à£¬¼´Ê¹²»½èÖú¹¤¾ßÒ²ÄÜд³öJSONµÄ´úÂ룬¿ÉÊÇҪдºÃXML¾Í²»Ì«ÈÝÒ×ÁË¡£
(4).½âÂëÄѶȷ½Ãæ¡£
XMLµÄ½âÎöµÃ¿¼ÂÇ×ӽڵ㸸½Úµã£¬ÈÃÈËÍ·»èÑÛ»¨£¬¶øJSONµÄ½âÎöÄѶȼ¸ºõΪ0¡£ÕâÒ»µãXMLÊäµÄÕæÊÇû»°Ëµ¡£
(5).Á÷Ðжȷ½Ãæ¡£
XMLÒѾ±»Òµ½ç¹ã·ºµÄʹÓ㬶øJSON²Å¸Õ¸Õ¿ªÊ¼£¬µ«ÊÇÔÚAjaxÕâ¸öÌØ¶¨µÄÁìÓò£¬Î´À´µÄ·¢Õ¹Ò»¶¨ÊÇXMLÈÃλÓÚJSON¡£µ½Ê±AjaxÓ¦¸Ã±ä³ÉAjaj(Asynchronous Javascript and JSON)ÁË¡£
(6).½âÎöÊֶη½Ãæ¡£
JSONºÍXMLͬÑùÓµÓзḻµÄ½âÎöÊֶΡ£
(7).Êý¾ÝÌå»ý·½Ãæ¡£
JSONÏà¶ÔÓÚXMLÀ´½²£¬Êý¾ÝµÄÌå»ýС£¬´«µÝµÄËٶȸü¿ìЩ¡£
(8).Êý¾Ý½»»¥·½Ãæ¡£
JSONÓëJavaScriptµÄ½»»¥¸ü¼Ó·½±ã£¬¸üÈÝÒ×½âÎö´¦Àí£¬¸üºÃµÄÊý¾Ý½»»¥¡£
(9).Êý¾ÝÃèÊö·½Ãæ¡£
JSON¶ÔÊý¾ÝµÄÃèÊöÐÔ±ÈXML½Ï²î¡£
(10).´«ÊäËÙ¶È·½Ãæ¡£
JSONµÄËÙ¶ÈÒªÔ¶Ô¶¿ìÓÚXML¡£
4.XMLÓëJSONÊý¾Ý¸ñʽ±È½Ï
(1).¹ØÓÚÇáÁ¿¼¶ºÍÖØÁ¿¼¶
ÇáÁ¿¼¶ºÍÖØÁ¿¼¶ÊÇÏà¶ÔÀ´ËµµÄ£¬ÄÇôXMLÏà¶ÔÓÚJSONµÄÖØÁ¿¼¶ÌåÏÖÔÚÄÄÄØ?Ó¦¸ÃÌåÏÖÔÚ½âÎöÉÏ£¬XMLĿǰÉè¼ÆÁËÁ½ÖÖ½âÎö·½Ê½£ºDOMºÍ SAX¡£
<1>.DOM
DOMÊǰÑÒ»¸öÊý¾Ý½»»»¸ñʽXML¿´³ÉÒ»¸öDOM¶ÔÏó£¬ÐèÒª°ÑXMLÎļþÕû¸ö¶ÁÈëÄڴ棬ÕâÒ»µãÉÏJSONºÍXMLµÄÔÀíÊÇÒ»ÑùµÄ£¬µ«ÊÇXMLÒª¿¼ÂǸ¸½ÚµãºÍ×ӽڵ㣬ÕâÒ»µãÉÏJSONµÄ½âÎöÄѶÈҪСºÜ¶à£¬ÒòΪJSON¹¹½¨ÓÚÁ½Öֽṹ£ºkey/value£¬¼üÖµ¶ÔµÄ¼¯ºÏ;ÖµµÄÓÐÐò¼¯ºÏ£¬¿ÉÀí½âΪÊý×飻
<2>.SAX
SAX²»ÐèÒªÕû¸ö¶ÁÈëÎĵµ¾Í¿ÉÒÔ¶Ô½âÎö³öµÄÄÚÈݽøÐд¦Àí£¬ÊÇÒ»ÖÖÖð²½½âÎöµÄ·½·¨¡£³ÌÐòÒ²¿ÉÒÔËæÊ±ÖÕÖ¹½âÎö¡£ÕâÑù£¬Ò»¸ö´óµÄÎĵµ¾Í¿ÉÒÔÖ𲽵ġ¢Ò»µãÒ»µãµÄÕ¹ÏÖ³öÀ´£¬ËùÒÔSAXÊʺÏÓÚ´ó¹æÄ£µÄ½âÎö¡£ÕâÒ»µã£¬JSONĿǰÊÇ×ö²»µ½µÃ¡£
ËùÒÔ£¬JSONºÍXMLµÄÇá/ÖØÁ¿¼¶µÄÇø±ðÔÚÓÚ£º
JSONÖ»ÌṩÕûÌå½âÎö·½°¸£¬¶øÕâÖÖ·½·¨Ö»ÔÚ½âÎö½ÏÉÙµÄÊý¾Ýʱ²ÅÄÜÆðµ½Á¼ºÃµÄЧ¹û£»
XMLÌṩÁ˶Դó¹æÄ£Êý¾ÝµÄÖð²½½âÎö·½°¸£¬ÕâÖÖ·½°¸ºÜÊʺÏÓÚ¶Ô´óÁ¿Êý¾ÝµÄ´¦Àí¡£
(2).¹ØÓÚÊý¾Ý¸ñʽ±àÂë¼°½âÎöÄѶÈ
<1>.ÔÚ±àÂë·½Ãæ¡£
ËäÈ»XMLºÍJSON¶¼Óи÷×ԵıàÂ빤¾ß£¬µ«ÊÇJSONµÄ±àÂëÒª±ÈXML¼òµ¥£¬¼´Ê¹²»½èÖú¹¤¾ß£¬Ò²¿ÉÒÔд³öJSON´úÂ룬µ«ÒªÐ´³öºÃµÄXML´úÂë¾ÍÓеãÀ§ÄÑ;ÓëXMLÒ»Ñù£¬JSONÒ²ÊÇ»ùÓÚÎı¾µÄ£¬ÇÒËüÃǶ¼Ê¹ÓÃUnicode±àÂ룬ÇÒÆäÓëÊý¾Ý½»»»¸ñʽXMLÒ»Ñù¾ßÓпɶÁÐÔ¡£
Ö÷¹ÛÉÏÀ´¿´£¬JSON¸üΪÇåÎúÇÒÈßÓà¸üÉÙЩ¡£JSONÍøÕ¾ÌṩÁ˶ÔJSONÓï·¨µÄÑϸñÃèÊö£¬Ö»ÊÇÃèÊö½Ï¼ò¶Ì¡£´Ó×ÜÌåÀ´¿´£¬XML±È½ÏÊʺÏÓÚ±ê¼ÇÎĵµ£¬¶øJSONÈ´¸üÊÊÓÚ½øÐÐÊý¾Ý½»»»´¦Àí¡£
<2>.ÔÚ½âÎö·½Ãæ¡£
ÔÚÆÕͨµÄwebÓ¦ÓÃÁìÓò£¬¿ª·¢Õß¾³£ÎªXMLµÄ½âÎöÉËÄԽÎÞÂÛÊÇ·þÎñÆ÷¶ËÉú³É»ò´¦ÀíXML£¬»¹Êǿͻ§¶ËÓà JavaScript ½âÎöXML£¬¶¼³£³£µ¼Ö¸´ÔӵĴúÂ룬¼«µÍµÄ¿ª·¢Ð§ÂÊ¡£
ʵ¼ÊÉÏ£¬¶ÔÓÚ´ó¶àÊýWebÓ¦ÓÃÀ´Ëµ£¬ËûÃǸù±¾²»ÐèÒª¸´ÔÓµÄXMLÀ´´«ÊäÊý¾Ý£¬XMLÐû³ÆµÄÀ©Õ¹ÐÔÔڴ˾ͺÜÉÙ¾ßÓÐÓÅÊÆ,Ðí¶àAjaxÓ¦ÓÃÉõÖÁÖ±½Ó·µ»ØHTMLƬ¶ÎÀ´¹¹½¨¶¯Ì¬WebÒ³Ãæ¡£ºÍ·µ»ØXML²¢½âÎöËüÏà±È£¬·µ»ØHTMLƬ¶Î´ó´ó½µµÍÁËϵͳµÄ¸´ÔÓÐÔ£¬µ«Í¬Ê±È±ÉÙÁËÒ»¶¨µÄÁé»îÐÔ¡£Í¬XML»ò HTMLƬ¶ÎÏà±È£¬Êý¾Ý½»»»¸ñʽJSON ÌṩÁ˸üºÃµÄ¼òµ¥ÐÔºÍÁé»îÐÔ¡£ÔÚWeb SeriviceÓ¦ÓÃÖУ¬ÖÁÉÙ¾ÍĿǰÀ´ËµXMLÈÔÓв»¿É¶¯Ò¡µÄµØÎ»¡£
(3).ʵÀý±È½Ï
XMLºÍJSON¶¼Ê¹Óýṹ»¯·½·¨À´±ê¼ÇÊý¾Ý£¬ÏÂÃæÀ´×öÒ»¸ö¼òµ¥µÄ±È½Ï¡£
<1>.ÓÃXML±íʾÖйú²¿·ÖÊ¡ÊÐÊý¾ÝÈçÏ£º
<?xml version="1.0" encoding="utf-8" ?><country> <name>Öйú</name> <province> <name>ºÚÁú½</name> <citys> <city>¹þ¶û±õ</city> <city>´óÇì</city> </citys> ¡¡¡¡ </province> <province> <name>¹ã¶«</name> <citys> <city>¹ãÖÝ</city> <city>ÉîÛÚ</city> <city>Ö麣</city> </citys> ¡¡¡¡ </province> <province> <name>̨Íå</name> <citys> ¡¡<city>̨±±</city> ¡¡<city>¸ßÐÛ</city> </citys>¡¡ </province> <province> <name>н®</name> <citys> <city>ÎÚ³ľÆë</city> </citys> </province></country>
<2>.ÓÃJSON±íʾÖйú²¿·ÖÊ¡ÊÐÊý¾ÝÈçÏ£º
var country = { name: "Öйú", provinces: [ { name: "ºÚÁú½", citys: { city: ["¹þ¶û±õ", "´óÇì"]} }, { name: "¹ã¶«", citys: { city: ["¹ãÖÝ", "ÉîÛÚ", "Ö麣"]} }, { name: "̨Íå", citys: { city: ["̨±±", "¸ßÐÛ"]} }, { name: "н®", citys: { city: ["ÎÚ³ľÆë"]} } ] }
±àÂëµÄ¿É¶ÁÐÔÀ´Ëµ£¬XMLÓÐÃ÷ÏÔµÄÓÅÊÆ£¬±Ï¾¹ÈËÀàµÄÓïÑÔ¸üÌù½üÕâÑùµÄ˵Ã÷½á¹¹¡£JSON¶ÁÆðÀ´¸üÏñÒ»¸öÊý¾Ý¿é£¬¶ÁÆðÀ´¾Í±È½Ï·Ñ½âÁË¡£²»¹ý£¬ÎÒÃǶÁÆðÀ´·Ñ½âµÄÓïÑÔ£¬Ç¡Ç¡ÊÇÊʺϻúÆ÷ÔĶÁ£¬ËùÒÔͨ¹ýJSONµÄË÷Òýcountry.provinces[0].name¾ÍÄܹ»¶ÁÈ¡¡°ºÚÁú½¡±Õâ¸öÖµ¡£
±àÂëµÄÊÖдÄѶÈÀ´Ëµ£¬XML»¹ÊÇÊæ·þһЩ£¬ºÃ¶Áµ±È»¾ÍºÃд¡£²»¹ýд³öÀ´µÄ×Ö·ûJSON¾ÍÃ÷ÏÔÉٺܶࡣȥµô¿Õ°×ÖÆ±íÒÔ¼°»»Ðеϰ£¬JSON¾ÍÊÇÃÜÃÜÂéÂéµÄÓÐÓÃÊý¾Ý£¬¶øXMLÈ´°üº¬ºÜ¶àÖØ¸´µÄ±ê¼Ç×Ö·û¡£